我的项目使用jQuery 1.4.2。我已经将一些安全信息添加到我的AJAX标头中了……我这样做的方法是使用$ .ajaxSetup()并设置一个beforeSend函数。
$(document).ready(function (e) { $.ajaxSetup({ global: true, beforeSend: function (jqXHR, settings) { var verificationToken = 'some encrypted string'; jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken); } }); })
据我了解,这应该在每次调用$ .ajax()时执行,对吗?它可以在Chrome,Firefox,IE9等环境中正常运行,但有时在IE7 / 8中则 不能 。
这是我称之为的地方:
$.ajax({ type: "POST", async: true, data: 'somedata', url: "/some/url", success: function (data) { alert("success"); }, error: function (data) { alert("error"); } });
我找到了一种解决方法,可以将beforeSend直接添加到$ .ajax()调用(如下)中,但是我真的想在全局范围内执行此操作,而不必将其添加到代码中的大量地方。 。
$.ajax({ type: "POST", async: true, data: 'somedata', url: "/some/url", success: function (data) { alert("success"); }, error: function (data) { alert("error"); } beforeSend: function (jqXHR, settings) { var verificationToken = 'some encrypted string'; jqXHR.setRequestHeader("X-Request-Verification-Token", verificationToken); } });
有什么线索吗?
谢谢!尼尔
好的,在没有其他答案的情况下,我特此声明这是JQuery 1.4.x中的错误。解决方案是升级到更高版本的JQuery,对我来说这是不可能的。
如果有人有更好的答案/解决方法,我会很乐意删除此答案/并将其标记为正确。