- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有以下函数来设置我的 AJAX
请求的 header :
self.authenticate = function () {
self.token = sessionStorage.getItem(tokenKey);
var headers = {};
if (self.token) {
headers.Authorization = 'Bearer ' + self.token;
$.ajaxSetup({
headers: headers
});
}
}
但这不起作用,当我检查开发者收费 (F12) 或 Fiddler 中的 header 时,我在那里看不到自定义 header ,但是当我在请求上设置 header 而不是通过 ajaxSetup
完美运行。
authenticate
函数正在布局页面中调用:
$(document).ready(function () {
var avm = new AuthenticationViewModel();
avm.authenticate();
});
并且self.token
不是null
。
例如,对于这个请求:
self.getUsers = function (callback) {
$.get("../API/Users/GetUsers/",callback);
}
我错过了什么?
最佳答案
$.ajaxSetup为 future 的 Ajax 请求设置默认值。
Its use is not recommended as suggested in the JQuery documentation.
无论如何,因为它为将来的调用设置了默认值,所以它必须在依赖于这些默认值的所有 ajax 调用之前执行。例如,如果您没有提及调用的 url
,则在 $ajaxSetup
中配置的默认 url
将是 电话的网址
。如果您所做的调用取决于这些默认值,那么此代码
self.authenticate = function () {
self.token = sessionStorage.getItem(tokenKey);
var headers = {};
if (self.token) {
headers.Authorization = 'Bearer ' + self.token;
$.ajaxSetup({
headers: headers
});
}
}
必须在进行以下调用之前执行。
self.getUsers = function () {
$.get("../API/Users/GetUsers/");
}
现在检查这个
*************** Plunker for answer *******************
在那个 plunker 中,通过按 F12 转到 developer console 中的 network 选项卡,并检查 调用的 header $.ajax()
和 $.get()
在 plunker 中我观察到(要阅读的要点),
$.ajax()
则显示 header 并且调用的 url
是 url
在 $.ajaxSetup
$.get()
,则 header 不会显示,调用的 url
是 plunker
url 意味着在你的情况下它将是 http://MySite/
等等。
$.ajax()
is the most configurable one, where you get fine grained control over HTTP headers and such. You're also able to get direct access to the XHR-object using this method. Slightly more fine-grained error-handling is also provided. Can therefore be more complicated and often unecessary, but sometimes very useful. You have to deal with the returned data yourself with a callback.
$.get()
is just a shorthand for$.ajax()
but abstracts some of the configurations away, setting reasonable default values for what it hides from you. Returns the data to a callback. It only allows GET-requests so is accompanied by the$.post()
function for similar abstraction, only for POST
获取更多信息
DIFFERENCE BETWEEN $.ajax() and $.get(), $.post()
如果需要,只需测试 plunker。
$.ajax() 调用的图片
$.get() 调用的图片
因此,如果你想设置 headers
只需使用 $.ajax()
而不是 $.get()
希望这有帮助:)
关于javascript - $.ajaxSetup 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493494/
我有 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,即
我是一名优秀的程序员,十分优秀!