电话看起来像这样
$.ajax({
url: url,
crossDomain: true,
dataType: 'jsonp',
success: function(){console.log('success');}
})
从服务器代码它是这样的
string data = callback + "(" jsonData + ")";
send("application/javascript",data);
jsonData 是有效的,我很确定。我已经在许多在线 json 验证器上对其进行了测试。我还尝试在服务器代码中将内容类型从 application/javascript 切换到 application/json ,但没有区别。
我让它工作的唯一方法是覆盖发送给我的 jquery 的回调函数,并让它调用我自己的全局函数,而不是调用 jquery 成功函数。这是该解决方法的代码
$.ajax({
url: url,
crossDomain: true,
dataType: "jsonp",
jsonpCallback: "onMyDataReceived"
})
function onMyDataReceived(jsonData){ doStuff(jsonData ); }
但我觉得这更像是一种 hack,而不是让它自然地从 $.ajax.sucess 函数中流出。关于为什么第一个代码片段会出错的任何帮助?