使用jQuery AJAX HTTPS POST请求失败在Firefox
题
我的记录在一个HTML表与删除链接,每行一个简单的列表。删除链路芽关闭一个AJAX post请求到一个固定的URL,看起来像:“/delete/record/5
”
在AJAX请求是使用HTTPS的服务器上运行时使用jquery的.ajax()
呼叫与POST消息创建的。这一呼吁在Firefox 3在失败OSX / Windows的架构。它适用于我测试过的所有其他浏览器(OSX / Windows的:浏览器,Safari浏览器,IE7)
在请求从HTTPS站点来来往往到相同的HTTPS站点。但我认为某处过程中的原始请求为http开头,有我们的服务器重定向尝试从基于HTTP> HTTPS发送和Firefox拒绝重定向某种类型的伪造的。
有没有人有经验做.ajax()
JQuery的在HTTPS网站与Firefox电话?我注意到一些奇怪的地方,如果请求已在URL“?var=xxx
”的论点,请求似乎工作更经常然后如果没有这些变量。
解决方案
听起来你得到一个HTTP 411错误。一>。如果您将没有任何POST
一个data
请求可能发生此错误。
要解决这个问题,给{}
属性添加一个空对象(data
)您的要求:
$.ajax({
url: url,
type: 'POST',
data: {}, // <- set empty data
success: function(data, textStatus) {
// do something
}
});
其他提示
这似乎不太可能......我不能说我怀疑你。但我建议下载Wireshark的,看你的HTTP流量,看看你不能找出问题。您可以比较其他浏览器对抗FF3发出请求发送的请求,看看什么样的反应是回来了。如果它确实是与jQuery没有FF3正常工作的问题你也许可以改变一些代码才能正常工作。
您或许可以安装Firefox的活头扩展,这将使你获得你的请求/响应的所有信息。这样,您就可以捕获任何分歧。
您已经安装在你的Firefox任何插件或GreaseMonkey程式码?
我从未有过与HTTPS jQuery的AJAX请求的问题。我建议考虑看看,如果你还没有什么萤火虫的轮番上涨。
我被$.post
通过发送一个空对象作为data
参数在Firefox工作。注意空括号参数2:
$.post(url, {}, function(response){ alert('done'); }, "json");