Jquery ajax jsonp请求-无响应
首先,我喜欢这个资源——已经使用它并学习了几年了。这是我的第一篇帖子,因为我真的被卡住了。我正在通过ajax/jsonp提交表单。如果我在本地运行这个脚本,我会从域中得到一个带有成功代码的响应。如果我只是在浏览器中运行请求,它会返回带有成功代码的响应。但是,当我提交表单时,Firebug会给我一个红色的200 OK,服务器没有响应。Safari给我一个加载资源失败的消息:已取消。找不到关于错误的太多文档,所以我暂停了。我知道这可能是非常恶心的u专业人士阅读,但这是我的第一篇文章,所以任何指导是感激的!在线上有两个例子:一个是带有reCaptcha的版本。如果添加验证码影响了我的代码,则没有重新验证码。如果我只是需要一记耳光,也让我知道。谢谢大家!Jquery ajax jsonp请求-无响应,jquery,ajax,jsonp,Jquery,Ajax,Jsonp,首先,我喜欢这个资源——已经使用它并学习了几年了。这是我的第一篇帖子,因为我真的被卡住了。我正在通过ajax/jsonp提交表单。如果我在本地运行这个脚本,我会从域中得到一个带有成功代码的响应。如果我只是在浏览器中运行请求,它会返回带有成功代码的响应。但是,当我提交表单时,Firebug会给我一个红色的200 OK,服务器没有响应。Safari给我一个加载资源失败的消息:已取消。找不到关于错误的太多文档,所以我暂停了。我知道这可能是非常恶心的u专业人士阅读,但这是我的第一篇文章,所以任何指导是感
$.ajax({
url: 'http://myURLonaDifferentDomain',
data:jQuery(frm).serialize(),
type: 'POST',
dataType: 'jsonp',
jsonp: 'jsonp',
crossDomain: true,
error: function (xmlHttpRequest, textStatus, errorThrown) {
if(xmlHttpRequest.readyState == 0 || xmlHttpRequest.status == 0)
return; // it's not really an error
else
alert(xmlHttpRequest + ': ' + textStatus + ': ' + errorThrown);
},
success: function(jsonp) {
// Response handling code goes here
console.log(json.response.responseCode + ': ' + json.response.response + ': ' + json.response.responseDescription);
if (json.response.responseCode == 10527) {
document.getElementById('errorScreen').style.display='block';
$('#errorMsg').append('There was an error with your credit card transaction please go back and re-check your ');
}
if (json.response.responseDescription == "Registration was successful") {
window.location.replace("http://www.url.com/thankyou.php");
}
}
});
}
哈哈哈。跨域脚本。这是个大问题。了解解决方案
编辑我重新阅读了这个问题,注意到您已经准备好了跨域的AJAX(尽管它通常会自己注意到);几乎可以肯定的是,您没有准备好远程Web服务器。使用Firebug,打开Net选项卡,查看特征CORS头的响应头。我有一个类似的问题,解决方案是JSONP响应必须包装在回调函数中。回答:我认为jsonP是解决跨域问题的一种解决方案?这就是Firebug为响应头显示的内容。我遗漏了什么吗?日期Sun,2011年8月21日07:15:50 GMT服务器Apache/2.2.8(CentOS)内容语言en-US内容长度128连接关闭内容类型应用程序/x-javascript;charset=UTF-8Yup,没有CORS头(看起来像
访问控制允许源站
)。您可以查看请求是否看起来像JSOP请求(GET likejsonp=xyz
)中会有一个参数,以及响应是否正确(它将以xyz(…)开头)