我正在尝试发出允许跨域的JSONP请求。情况是我的服务器不处理JSONP请求,并且它将此请求理解为JSON并使用JSON对象进行响应:{result: 1}
这是我的ajax请求:
jQuery.ajax({
type : 'POST',
url : "https://example.com/addUser",
data : {
firstName : 'firstName',
lastName : 'lastName',
email : 'email@yopmail.com'
},
crossDomain : true,
jsonpCallback: "jsonpCallback",
success : function(data) {
alert(data);
},
complete : function(jqXHR, textStatus) {
//can do something here
},
error : function (xhr, textStatus, errorThrown) {
if(errorThrown=="jsonpCallback was not called") {
console.log('caught it!');
}
},
dataType : 'jsonp'
});
来自窗口控制台的读数:
Resource interpreted as Script but transferred with MIME type text/json: "https://example.com/addUser…Name=firstName&lastName=lastName&email=email%40yopmail.com&_=1359646137496".
Uncaught SyntaxError: Unexpected token :
caught it!
正如预期的那样,它会抛出parseerror异常并尝试处理它。但我的问题是,由于浏览器实际上得到了响应{result:1}
,有没有办法可以解析它?
答案 0 :(得分:-1)
使用数据类型:'json'
$.ajax({
url: getinstruments,
dataType: 'json',
success: function(data) {
alert (data.firstName);
}
});