- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 JS 文件中我有这个:
$.ajaxSetup({
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: {},
error: function (jqXHR, textStatus, errorThrown) {
debugger;
}
});
然后在文件中进一步实例化一个对象,该对象在其构造函数中调用 AJAX 以填充一些值。
function RequestViewModel() {
var self = this;
(...)
// Initalization Methods
$.ajax({
url:ajaxAddress + 'LoadStates',
success: function (data) {
debugger;
}
});
}
var model = new RequestViewModel();
但是,当在代码中进行 ajax 调用时,“xml”被用作数据类型而不是 JSON。这导致我的网络服务调用中断,我总是被发送到 AJAX 调用的错误回调。如果我将设置移动到实际的 AjAX 调用中,则调用有效并且数据从服务器返回。出于某种原因,全局设置未被接受。
我的问题是为什么这不起作用?我已经多次使用相同的技术而没有出现这个问题。
我使用的是 jQuery 1.7.1 版。
更新
问题似乎出在 jQuery 文件的第 7517 行。它正在执行一个 IF 语句,该语句被评估为 false 并跳过在请求 header 中设置正确的内容类型。
最佳答案
jQuery.ajaxSetup
而不是 $.ajaxSetup
建议不要将全局事件处理程序放在 ajaxSetup 中。移动 error:
至 $.ajaxError(
相反:
jQuery.ajaxError( function (e, jqxhr, settings, exception) {
alert(settings.url + " Failed");<br/>
});
例如,如果您有一个带有日志类的 div(如果发生任何错误,请放入一些文本:
$("div.log").ajaxError(function() {
$(this).text( "Triggered ajaxError handler." );
});
注意:重构时,请确保删除最后一个逗号。
此外,如果您使用的是最新版本的 jQuery(目前为 1.7.1),您可以简化:
contentType: "application/json; charset=utf-8",
到
contentType: "application/json",
编辑:快速、肮脏的全局处理程序:
$(document).ajaxError(function(e, xhr, settings, exception) {
alert('error in: ' + settings.url + ' \\n'+'error:\\n' + exception);
});
EDIT2:一些资源还把空数据集发送为:(带引号)
data: "{}",
关于javascript - jQuery.ajaxSetup() 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184024/
我有 3 个 js 文件: app.js $.ajaxSetup({ error : function(request) { switch (request.status) {
我想为我的所有 ajax 请求设置一个全局数据参数 $.ajaxSetup({ data: {hash : "12345"} }); 设置后我调用: var myData = { nam
我正在使用 $.ajaxSetup 在我的站点中使用全局授权方法和全局错误处理。我想将回调函数传递给全局错误方法,这样我就可以在需要时在全局错误处理程序中调用该函数。这是我的 $.ajaxSetup:
我有以下函数来设置我的 AJAX 请求的 header : self.authenticate = function () { self.token = sessionStorage.getI
登录远程 aPI 服务器并获取 access_token 后,我尝试为所有后续 ajax 调用设置授权 header : .done(function (result) {
jQuery 中的 $.ajax(); 和 $.ajaxSetup(); 有什么区别: $.ajax({ cache:false }); 和 $.ajaxSetup({ cache:t
我正在使用 ASP.Net MVC 和 jQuery 1.8.2 我有一个带有按钮的表单,单击该按钮时会调用此 javascript: $(function () { $('#SearchBu
我有 // Ajax setup $.ajaxSetup({ beforeSend: function() { $('#general-ajax-load ').fadeIn(); }, c
我正在尝试关闭应用程序中的所有 AJAX,请参阅 here . 使用ajaxSetup控制getJSON吗? 即此 getJSON 请求是同步的吗? // TURNING OFF ALL AJAX $
在 JS 文件中我有这个: $.ajaxSetup({ type: 'POST', contentType: "application/json; charset=utf-8",
我正在使用 $.ajax 提交表单,我想在提交中添加一个不属于表单输入的键值对,这对我的所有表单都是通用的。所以我计划将公共(public)部分移动到 ajaxsetup。我想在 Action 中接收
$.ajaxSetup 用于 jquery 中的 ajax 调用。 如果我们使用 jquery ajax,这工作得很好。 但在 MVC 中,我们使用 Ajax.BeginForm() 。回调处理程序是
我想对所有 ajax 调用使用 ajaxsetup,但它似乎干扰了我在网站上的 jqgrids。有没有一种方法可以全局设置我的 ajax 调用,而不会弄乱 jqgrids 内部调用。下面的代码是我想在
我有两个 jQuery 脚本 - 一个用于内联表单编辑,第二个是 jQuery 自动完成。 自动完成有以下ajaxSetup: $.ajaxSetup({ url: '/notes/inline
代码1 $.ajax({url:"1.aspx/HelloWorld",type:"GET",dataType:"json",contentType:"application/json"}); 代码2
我正在尝试在 JSP 文件中插入以下代码段 { $.ajaxSetup({ cache: false, async: false }); var
我目前正在开发一个 jquery 程序。我的程序在 firefox 3.5 中运行良好,但直到我将浏览器升级到 firefox 4.0 后才能正常运行。从那时起,'parsererror' 就再也没有
我的布局页面上有 AJAX 事件绑定(bind): $(document).not("#approvalTitleBlock").bind("ajaxSend", function() { $("
我有一种方法可以跟踪当前的 Ajax 请求,其中涉及 $.ajaxSetup(),并计算 beforeSends 和完成数。 jsFiddle Demo var ajaxProcs = 0; $.aj
这可能很奇怪,但我正在寻找的是如何使 jQuery.ajaxSetup() 的范围仅在特定对象内。让我举个例子,我有两个对象 obj_1 和 obj_2。我想以这样一种方式编写 ajaxSetup,即
我是一名优秀的程序员,十分优秀!