当涉及到AJAX时,我不是最有见识的,所以我很难调试我认为非常简单的AJAX请求。请求通过GET将数据发送到URL,并且应该返回1或0.而不返回任何内容,并且错误消息为空。对我来说令人困惑的部分是我可以复制和粘贴URL以及url编码变量(就像我使用GET方法提交表单时那样)并且远程服务器将返回1或0细
Firebug没有显示任何错误也被抛出。我可以从中看到的是请求已经完成,正确的参数和相关值被传递,并且html完全空白。
编辑:这不是特定于浏览器的。在Firefox,IE和Chrome中测试。
代码:
var userData = {
firstname: $('#firstname').val(),
lastname: $('#lastname').val(),
addr1: $('#addr1').val(),
ct: $('#ct').val(),
stateprovince: $('#stateprovince').val(),
zipcode: $('#zipcode').val(),
primary_phone: $('#primary_phone').val(),
gradyear: $('#gradyear').val(),
school_id: $('#school_id').val(),
source_id: $('#source_id').val()
}
$.ajax({
type: "GET",
url: "http://blahblahblah.com/blah",
data: userData,
success: function() {
alert("it worked!");
},
error: function(xhr,err){
alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
alert("responseText: "+xhr.responseText);
}
});
错误提醒返回:
readyState: 0
status: 0
和
repsonseText:
任何帮助将不胜感激!如果要求任何其他信息,我会尽快回复!
答案 0 :(得分:1)
问题在于我试图在跨域(在我的服务器域之外)AJAX调用上接收文本作为响应。显然,浏览器出于安全原因禁用跨域javascript调用,并且只接受“jsonp”和“script”格式的响应。
在我发现问题后,我搜索了如何解决这个问题的答案。 This回答给了我正在寻找的解决方案,并允许我通过一些调整来获得所需的结果以适合我的情况。
感谢您帮助我深究这一点!