Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

About parsererror SyntaxError: Unexpected end of input (CI with Jquery&ajax )

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,

like image 946
aCmySQL Avatar asked Jan 19 '23 07:01

aCmySQL


1 Answers

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);
like image 85
Nick Craver Avatar answered Jan 21 '23 22:01

Nick Craver