Himanshu Singh Himanshu Singh - 7 months ago 33
Javascript Question

Unexpected token < in JSON at position 4

var url="http://fsa.citop.in/lnct/service/signProcess.aspx";
var data={txtLogId: "abc@xyz.com",txtLogPass: "xyz",hdnReqType2: "sign87162"};
var success=function(data, textStatus, jqXHR) {
console.log(data);
};

var fail=function(jqXHR, textStatus, errorThrown) {
console.log("Error:" + errorThrown );
}
$.ajax({
type: "POST",
url: url,
data:data,
success:success,
error:fail,

});


This POST request gives me the error,
SyntaxError: Unexpected token < in JSON at position 4
, in the console of the page 'http://fsa.citop.in/lnct/' in chrome.

But if I use
fsa.citop.in/lnct/service/signProcess.aspx
(i.e. no http://), it gives me no error, but nothing comes back in data. On
success
of POST request, a JSON object is expected. Please somebody explain what is happening here and how it could be resolved.

Answer

It's most likely because the response is HTML and it's trying to parse it as something else. The < at position 4 is the first < of <!DOCTYPE html....

You should try to specify dataType in your ajax call (see http://api.jquery.com/jquery.ajax/) and also make signProcess.aspx to return something more useful (currently the response content type is application/json but it prints HTML).

Comments