About parsererror SyntaxError: Unexpected end of input (CI with jQuery and ajax)

I do not understand this error.

I am using 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 'action' attribute //type: type // 'get' or 'post', override for form '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 a 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('Ym-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); 

Alerts (xht.responseText) Everything is good. It can send responseText (no error)

and why success cannot be used: saveShowResponse,

+4
source share
2 answers

This error means that the response returned from your URL is not JSON, an error occurs trying to parse it as such.

Look at your network panel (easier) or set up an error handler to see which response your server actually returns by looking at responseText :

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

For me, my PHP script used in an Ajax request had two identical include statements. This PHP script created an XML string that will be used later.

I removed the second link to the include statement, and this error went away.

Hope this helps someone!

0
source

All Articles