我正在尝试获取JSONP AJAX请求,但是我在弄清楚它为什么不起作用时遇到了问题。现在我有这个电话
$.getJSON(server_path+"formproxy.php?"+$(form).serialize()+"&action="+form.action+"&callback=?", function(data, status, xhr) {
alert(data);
});
但是当我运行脚本时似乎没有任何事情发生。我能想到的最好的是jsonp请求遇到了错误,但因为它是一个jsonp请求,它实际上并没有报告错误,这极大地阻碍了我的调试。
我玩过
$.ajaxSetup({
"error":function() {
alert("error");
}
});
和
$(document).ajaxError(function(e, xhr, settings, exception) {
alert('failed');
});
但我不能让他们中的任何一个触发。
我已将目标网址输出到控制台,即
server_path+"formproxy.php?"+$(form).serialize()+"&action="+form.action+"&callback=?"
我可以访问输出的网址,看看它是否有效并输出?({"result":"success"})
这对我来说是正确的。
查看Chrome中的控制台,它甚至没有显示XHR,但我至少确定由于断点而达到$ .getJSON()代码。
我最后应该注意到,我甚至不关心从AJAX调用中获取数据。我只需要发送表单数据跨域并让formproxy.php脚本处理它。
对于为什么这可能不起作用的任何想法或帮助我看到内部发生的事情的技巧将非常感激。
答案 0 :(得分:2)
您是否尝试过查看Chrome开发者工具中的Network Panel?它将显示您在页面上发出的所有http请求/响应。这样你可以确定getJSON调用是否向服务器发出请求,以及服务器响应是什么(如果有的话)。
您也可以在Firebug中使用Net panel。