Html Firefox中不支持withCredentials属性

Html Firefox中不支持withCredentials属性,html,firefox,jquery,Html,Firefox,Jquery,我正在使用HTML5、jQuery 1.6.1、jQuery Mobile 1.0.1 我使用下面的代码发出Ajax请求。它在Chrome中运行良好,但在Firefox 14.0.1中测试时出现以下错误 窗口上下文中的同步模式不再支持使用XMLHttpRequest的withCredentials属性 代码: 请帮我解决这个问题。解决方案很简单:不要在$.ajax中使用async:false 它在较新的版本中已被弃用,您不需要它。使用它总是一个坏主意。执行您需要对成功回调的结果执行的操作(就像您

我正在使用HTML5、jQuery 1.6.1、jQuery Mobile 1.0.1

我使用下面的代码发出Ajax请求。它在Chrome中运行良好,但在Firefox 14.0.1中测试时出现以下错误

窗口上下文中的同步模式不再支持使用XMLHttpRequest的withCredentials属性

代码:


请帮我解决这个问题。

解决方案很简单:不要在
$.ajax
中使用
async:false

它在较新的版本中已被弃用,您不需要它。使用它总是一个坏主意。执行您需要对成功回调的结果执行的操作(就像您的
console.log

从(1.8)开始:

请注意,同步请求可能会暂时锁定浏览器, 在请求处于活动状态时禁用任何操作。从jQuery 1.8开始, 不推荐在jqXHR($.Deferred)中使用async:false;你 必须使用完整/成功/错误回调


我在几个地方看到了这条线索,因此我将更新这条线索的答案: 我尝试使用许多不同的帖子和其他属性将async调整为true,但表单提交的默认操作导致页面刷新:

                    submitSuggestion: function (e) {
                        e.preventDefault();
                        submitComment(viewModel);
                    },
                });
e.preventDefault()阻止了正常的提交行为,即重新加载页面。该行为会生成xml重定向错误,因为默认表单提交使用该函数


如果您得到的刷新不是您要求的,请尝试添加preventDefault

我希望我能多投50票给这个答案。非常感谢您-您刚刚结束了两个小时的错误修复会话。@tinytiger很高兴听到:)我不同意您不应该使用同步模式。我们有一个企业站点,当用户关闭页面时,它必须执行一些服务器端处理。可靠地做到这一点的唯一方法是使用unload函数并发出同步的ajax请求。如果浏览器关闭得太快,这些操作似乎会失败,但仅限于某些浏览器。此外,除非使用synch,否则回调函数永远不会执行,因为浏览器在ajax调用完成之前就消失了。当然,任何同步调用都需要设计得很快,否则会让用户感到厌烦。@George在用户关闭页面时进行服务器端处理是一种糟糕的做法。不要这样做,由于HTTP的性质,它不可能是可靠的。为web设计应用程序首先要避免这种反模式。
                    submitSuggestion: function (e) {
                        e.preventDefault();
                        submitComment(viewModel);
                    },
                });