我正在尝试将数据发送到服务器以插入数据库。我使用ajax发送数据,一切正常,直到服务器尝试响应。我在控制台中得到一个parsererror并出现此错误:
Error: jQuery111107585765416733921_1428006987473 was not called {stack: (...), message: "jQuery111107585765416733921_1428006987473 was not called"}
以下是我们正在使用的ajax调用:
var data = {
action: 'newUser',
id:id,
value:value
}
$.ajax({
url:"http://fake.url.com",
async:false,
crossDomain:true,
contentType: "application/json",
dataType: 'jsonp',
data:data,
// Work with the response
success: function( response ) {
console.log( response ); // server response
if(response == 'invalid'){
$('#takenUserName').html('<span style="color:red">Username already Exists</span>');
}
},
error: function(xhr, status, error){
console.log(xhr);
console.log(status);
console.log(error);
}
}); `
我做错了什么? 提前谢谢。
答案 0 :(得分:0)
如果您使用的是jsonp,则必须在响应中返回回调参数的值,否则它将无法工作,如果您想避免这种情况,请使用&#34; json&#34;而不是&#34; jsonp&#34;
这是证明你的客户端很好的证明,你的服务器端不是以jsonp的形式处理响应,而是作为json(在响应中返回令牌以使其成为jsonp){{ 3}}
var data = {
action: 'newUser',
id:'123',
value:'val'
}
$.ajax({
url:"http://jsfiddle.net/echo/jsonp/",
async:false,
crossDomain:true,
contentType: "application/json",
dataType: 'jsonp',
data:data,
// Work with the response
success: function( response ) {
console.log( response ); // server response
if(response == 'invalid'){
$('#takenUserName').html('<span style="color:red">Username already Exists</span>');
}
},
error: function(xhr, status, error){
console.log(xhr);
console.log(status);
console.log(error);
}
});
<强> [更新] 强>
您的响应应该在服务器端看起来像这样:
$_GET['callback'].'({"response":"json_object"})';