4

I don't understand this error .

I use codeigneter and Jquery&ajax

Error parsererror

personEdit.php

$(document).ready(function(){
    var options = {
        dataType :      'json',
        beforeSubmit:   saveShowRequest, // pre-submit callback
        success:        saveShowResponse,  //post-submit callback
        error: function (xhr, ajaxOptions, thrownError){
            //alert('Error !!'++ xhr.statusText);

            //alert(thrownError);
            $('#output_test').html('<h2>Error !!!!: ' + xhr.statusText +'</h2>'+thrownError );
        } 

        // other available options: 
        //url:       url         // override for form's 'action' attribute
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit

        //$.ajax options can be used here too, for example: 
        //timeout:   3000   }; 
        $('#myEditPersonForm').ajaxForm(options); 

});


// pre-submit callback 
function saveShowRequest(formData, jqForm, options) { 
    // formData is an array; here we use $.param to convert it to a string to display it 
    // but the form plugin does this for you automatically when it submits the data 
    var queryString = $.param(formData); 

    // jqForm is a jQuery object encapsulating the form element.  To access the 
    // DOM element for the form do this: 
    // var formElement = jqForm[0]; 

    alert('About to submit: \n\n' + queryString); 

    // here we could return false to prevent the form from being submitted; 
    // returning anything other than false will allow the form submit to continue 
    return true; 
} 

// post-submit callback 
function saveShowResponse()  { 

    // if the ajaxForm method was passed an Options Object with the dataType 
    // property set to 'json' then the first argument to the success callback 
    // is the json data object returned by the server                

    //alert display
    alert('SUCCESS exemple return respone'); 

    //html display
    $('#output_test').html('SUCCESS exemple return respone ');
} 

ajax_post.php // is CI

function update_person(){
    // set common properties            


    // run validation

        // save data
        $id = $this->input->post('id');
        $person = array('name' =$this->input->post('name'),
                        'gender' =$this->input->post('gender'),
                        'dob' =date('Y-m-d', strtotime($this->input->post('dob'))));
        $this->personModel->update($id,$person);

        // set user message
        $data['message'] = '<div class="success">update person success</div>';      
}

$('#output_test').html('<h2>Error !!!!: ' + xhr.statusText +'</h2>'+thrownError);
alert(xhr.responseText);

alert(xht.responseText); It ok . It can send responseText (no error)

and Why cannot use success: saveShowResponse,

1
  • Cleaning up your code so it's readable would be my first step. Commented Jul 2, 2011 at 9:45

2 Answers 2

9

This error means that the response coming back from your URL is not JSON, there's an error attempting to parse it as such.

Either look in your network panel (easier), or adjust your error handler to see what response your server is actually returning, by looking at the responseText like this:

$('#output_test').html('<h2>Error !!!!: ' + xhr.statusText +'</h2>'+thrownError);
alert(xhr.responseText);
Sign up to request clarification or add additional context in comments.

1 Comment

In my case, I just needed to remove the dataType: 'json' property from my request - the server was just returning OK with no content.
0

For me, my PHP script used in the Ajax request had two identical "include" statements. This PHP script was generating an XML string to be used later.

I removed the second reference to the "include" statement and this error went away.

Hope that helps someone!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.