在JS文件我有这样的:jQuery.ajaxSetup()被忽略
$.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'被用作dataType而不是JSON。这导致我的Web服务调用中断,并且我总是被发送到AJAX调用的错误回调。如果我在实际的Ajax调用中移动设置,则调用将起作用,并从服务器返回数据。出于某种原因,全球环境并未得到尊重。
我的问题是为什么这不工作?我几次使用过这个相同的技术,没有这个问题。
我正在使用jQuery版本1.7.1。
UPDATE
好像这个问题是jQuery的文件的7517行。它正在执行一个IF语句,该语句被假定为false,并跳过了在请求头中设置正确的Content Type。
你确定你的'$ .ajaxSetup()'调用正在执行吗? – 2012-02-07 21:17:46
这是文件中的第一个呼叫。除非它需要放在.ready()中。 – arb 2012-02-07 21:18:45
虽然不是必需的,但你所有的JS实际上都应该在'.ready()' – KOGI 2012-02-07 21:24:05