问题标签 [jqxhr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ajax - 没有指定 dataType 的自定义 ajaxTransport 函数未触发(完全!)
我一直在尝试为 jQuery 设置自定义 ajaxTransports,以便在我们的产品的某些场景中缩短一些工作流程。但是,我在使这些传输得到尊重方面的成功率为零(而我有许多工作的自定义 ajaxPrefilters)。
使用多个版本的 jQuery 测试:
- 1.5.2
- 1.6.4
- 1.7.2
- 1.8.0
用多个浏览器测试:
- 火狐 15
- 铬 21
- iOS 5 网页浏览量
...
他们都没有工作。
JsFiddle 测试用例:http: //jsfiddle.net/PVYut/
...
如果我添加一个dataType
来缩小范围,那么它工作正常。
JsFiddle 测试用例:http: //jsfiddle.net/PVYut/1/
...
我只是做错了什么吗?我很高兴被告知,只要我能做到这一点!-_-
jquery - 如何捕获 jQuery.ajax() 中未找到的 405 方法
我试图捕捉网站是否意外进行跨域调用(例如,如果用户在 url 而不是域中键入 IP。(这是一个商业的可安装应用程序,所以我没有 IIS 控制设置任何转发等)。这不起作用:
javascript中有什么方法可以捕获405错误吗?
jquery - 带有 POST 或 PUT 的 jQuery.ajax 没有 IE8 和 IE9 的响应标头
我注意到对于 IE8 和 IE9,如果我使用带有POST和PUT动词的 jQuery.ajax() 调用我的 RESTful API,那么我不会在 jqXHR 中取回任何响应标头。但是,GET 请求按预期工作。
此行为与所有其他浏览器不同。我已经验证 Chrome、FF、Opera 和 Safari 在 POST 和 PUT 请求的响应中都返回了完整的预期标头集。只有 IE8 和 IE9 似乎将标题扔在地板上。(我没有检查的一件事是 HEAD 请求会发生什么。)
我已经用Fiddler验证了标头实际上是通过网络实现的,所以问题出在 jQuery 本身或 IE8 和 IE9 上。
这是一个已知的问题?如果是这样,是否有解决方法。我可以在 jQuery 中重载/覆盖某些内容以保留 POST 和 PUT 之后的标题吗?我目前的解决方法是在成功回调中使用 GET 简单地重新获取修改后的数据,因为 IE8 和 IE9 不会与GET操作的标头混淆。
这是我主要的基于 jQuery 的 AJAX 工作方法的片段:
authentication - 使用 XHR 的基本身份验证
我正在尝试从需要基本身份验证的服务器获得一些响应。所以当我使用 curl 作为:
它给了我正确的回应。但是当我使用 jquery AJAX 创建 XHR 请求时。我有 403 错误。这是我的 AJAX 设置:
我有 403 响应。这是使用 -v 选项从 curl 获得的请求标头。
这是从我的 XHR 请求的 charles 获得的标头
我不明白为什么会这样?为什么我的 XHR 请求标头没有显示像 curl 标头中所示的授权标头。请建议我在哪里做错了。
PS:这是一个跨域请求。
jquery - IE XHR:jQuery.ajax 与 TJ 的超级代理
try
在生成跨浏览器 XHR 对象时,我注意到 TJ Holowaychuk 的超级代理库(“Ajax with less sink”)的几个用于 IE 的 ActiveXObject 方法:
完整代码:https ://github.com/visionmedia/superagent/blob/master/build/build.js#L359-376
在 jQuery 中,没有尝试这样做,我很好奇这里发生了什么。
您可以在 jQuery 源代码中搜索“ActiveXObject”并亲自查看:http ://code.jquery.com/jquery-1.8.2.js
什么时候new ActiveXObject('Microsoft.XMLHTTP');
抛出和瀑布下降到其他选项?
jquery - 错误时重用jquery jqXHR ajax成功回调
我希望在它的错误/失败函数中重新使用用于 jquery ajax 调用的成功/完成函数。
我需要处理的场景是,当用户尝试执行其帐户无权执行的操作时,Web 服务器返回错误,所有错误都通过相同的错误处理函数运行,该函数具有特殊的权限情况错误。当用户尝试访问他们无权访问/修改的内容时,它会创建一个弹出窗口,他们可以在其中输入登录信息并再次运行之前的请求,我存储了之前的请求,因此他们发送的所有信息都是存储。我遇到的问题是再次发送请求并确保将响应路由回适当的回调函数。
错误函数可以访问与请求关联的 jqXHR 对象,我想知道是否可以获取与该 jqXHR 关联的回调函数并将它们附加到新请求。
javascript - OPTIONS 405 (Method Not Allowed) 无论服务器发送 Access-Control-Allow-Methods:OPTIONS, GET, HEAD, POST
我正在尝试发出跨域请求,并且我的服务器配置为发送以下标头:
但是当发出一个 OPTION 请求时,我得到了OPTIONS 405 (Method Not Allowed)
错误。
任何想法是什么问题以及如何解决?
javascript - 不使用本机 XMLHttpRequest 的原因 - 为什么 $.ajax 是强制性的?
我正在编写一个应用程序:
- 绝对依赖于通过向服务器发送数据
Javascript
- 代码中不得包含
JQuery
库。
(我不知道我的代码是否会包含在已经有jquery lib的网页中,我不知道是否会有正确的版本,我不知道是否会有JQuery
冲突等等......)
我必须使用本机JS
功能XMLHttpRequest(ActiveX for older IE's)
方法,这很简单,但比我看到的警告要多:
“没有 jQuery,AJAX 编码可能有点棘手!
编写常规的 AJAX 代码可能有点棘手,因为不同的浏览器有不同的 AJAX 实现语法。这意味着您将不得不编写额外的代码来测试不同的浏览器。然而,jQuery 团队已经为我们解决了这个问题,因此我们只需一行代码就可以编写 AJAX 功能。”
这有什么“棘手”的?我可能做错了什么?据我所知
只是针对不同浏览器的额外代码,我的 xmlhttp var 应该从现在开始准备在IE5
, IE6
, IE7+
, Firefox
, Chrome
, Opera
,中完成工作Safari
。
XMLHttpRequest
以上是我应该做的所有跨浏览器代码调整,还是在使用本机对象时我应该注意什么?
ajax - DELETE 请求会影响 Safari 中任何类型的下一个请求
我的应用程序中有一个奇怪的问题,它只发生在 Safari 浏览器中。
在以 204 成功状态完成 DELETE 请求后,以下请求(可能是 PUT、GET、任何类型)也得到 204 状态作为响应,而不是预期的 200。所有 next 请求都可以,只是 DELETE 之后的第一个请求有问题。
请注意,这种情况不会出现在任何其他浏览器中。
jquery - jQuery ajax post 请求发送数据的格式是什么,如何通过 Flask 的请求对象访问它?
我正在创建一个使用 jQuery 的 $.post() 对象发送 XHR AJAX 请求的网页。该帖子正在由另一个域上的 Flask 应用程序接收。Javascript如下:
适用的 Flask 路由器代码为:
当表单提交到 url 时,Python 运行良好,但当我通过 jQuery 的 AJAX 对象进行 POST 时却不行。每次我尝试发出 AJAX 请求时都会引发 400 错误。我查看了 Flask 的 request.args 对象,但在发出请求时它没有任何内容。
有任何想法吗?