在Firefox中使用jquery的AJAX https POST请求失败
我在HTML表中有一个简单的记录列表,每行有一个删除链接。delete链接将AJAX post请求发送到一个固定的url,看起来像:“在Firefox中使用jquery的AJAX https POST请求失败,jquery,ajax,firefox,firefox-3,Jquery,Ajax,Firefox,Firefox 3,我在HTML表中有一个简单的记录列表,每行有一个删除链接。delete链接将AJAX post请求发送到一个固定的url,看起来像:“/delete/record/5” AJAX请求是在使用https的服务器上运行时,使用jquery的.AJAX()调用和POST消息创建的。在OSX/Windows架构上的Firefox3中,此调用失败。它适用于我测试过的所有其他浏览器(OSX/Windows:Chrome、Safari、IE7) 请求来自一个https站点,并转到同一个https站点。但我认为
/delete/record/5
”
AJAX请求是在使用https的服务器上运行时,使用jquery的.AJAX()
调用和POST消息创建的。在OSX/Windows架构上的Firefox3中,此调用失败。它适用于我测试过的所有其他浏览器(OSX/Windows:Chrome、Safari、IE7)
请求来自一个https站点,并转到同一个https站点。但我认为在这个过程中的某个地方,原始请求以http开始,我们的服务器上有一个重定向尝试,试图从http->https发送请求,Firefox拒绝了这个重定向,认为这是某种伪造
有没有人在使用Firefox的https站点上进行过
.ajax()
JQuery调用?我注意到一些奇怪的地方,如果请求的URL中有“?var=xxx
”参数,那么请求似乎比没有这些变量的情况下工作得更频繁。这似乎不太可能。。。我不是在怀疑你。但是我建议下载Wireshark并观察您的HTTP流量,看看您是否能够隔离问题。您可以将其他浏览器发送的请求与FF3发送的请求进行比较,并查看返回的响应类型。如果jQuery在FF3中确实存在功能不正常的问题,您可以修改部分代码以使其正常工作。您可以安装Firefox Live Headers扩展,该扩展将允许您访问请求/响应中的所有信息。通过这种方式,您将发现任何差异。您的Firefox上是否安装了插件或GreaseMonkey脚本
我从未遇到过HTTPS上的jQueryAjax请求问题。如果你还没有看到,我建议你看看会出现什么情况。。如果在没有任何数据的情况下发送POST
请求,则可能发生此错误
要解决此问题,请将空对象({}
)添加到请求的数据
属性中:
$.ajax({
url: url,
type: 'POST',
data: {}, // <- set empty data
success: function(data, textStatus) {
// do something
}
});
$.ajax({
url:url,
键入:“POST”,
数据:{},//我得到了$。post
通过发送一个空对象作为数据
参数在Firefox中工作。请注意参数2的空括号:
$.post(url, {}, function(response){ alert('done'); }, "json");
谢谢你的帮助!这正是问题所在!我有FF3和nginx,输入一个空白数据{}修复了问题。我不需要数据{}中的id来删除,因为id已经在url中。请注意!谢谢。修复了Firefox 3.0.x在ajax调用中失败的问题。谢谢。