Tag: xmlhttprequest

AJAX重定向困境,如何获取重定向URL或如何设置重定向请求的属性

首先,我在Google Chrome中工作,如果有帮助的话。 这是行为: 我通过jQuery向远程站点发送xhr请求(这是一个chrome扩展,我已经设置了所有的跨站点设置……): $.ajax({ type: “POST”, contentType : “text/xml”, url: some_url, data: some_xml, username: user, password: pass, success: function(data,status,xhr){ alert(data); }, error: function(xhr, status, error){ alert(xhr.status); } }); 正在设置的URL返回302(这是预期的),Chrome遵循重定向(也是预期的)。 新url会返回凭据提示,这些提示不会从原始请求中提取,因此Chrome会显示登录对话框。 如果我输入原始凭据,我会收到有关发送无效请求的响应(这是一个有效的HTTP请求 – 200 – 远程服务器只是不喜欢其中一个标头)。 在Chrome中查看开发者窗口时,会发送两个请求。 第一个是原始URL,其中包含AJAX请求中设置的所有设置。 第二个是重定向URL,方法为“GET”,“POST”字段中没有任何内容,也没有凭据。 我不知道我能做些什么。 我要么: 获取重定向URL,以便我可以发送第二个请求( xhr.getResponseHeader(“Location”)不起作用), 让新的重定向请求保留原始请求中的设置,或 获取错误来自的最终URL,以便我可以发送另一个请求。 理想情况下,我不希望用户必须在此对话框中第二次输入他们的凭据,但如果我能获得最终的URL,我将采取我能得到的。

Safari XHR上传卡片(有时)

我使用jquery-File-Upload构建了一个上传脚本。 现在我有一个奇怪的行为,上传时间不停(让我们说第八次)。 这只发生在Safari(5.0.5)中,其他浏览器工作正常。 我可以确认这与服务器无关。 在执行任何服务器脚本之前,问题就出现了。 有时上传率为2%,有时为82%。 我发现很难调试。 当使用Charles时 ,问题接缝消失了。 有关问题和调试策略的任何帮助表示赞赏。

Javascript,同时jQuery多个AJAX请求

function makeCall(file, handlerFile, sendMethod, formData) { //console.log(instance.files); $.ajax({ url: handlerFile, type: sendMethod, xhr: function() { // Custom XMLHttpRequest var xhr = $.ajaxSettings.xhr(); if(xhr.upload) { // Check if upload property exists xhr.upload.addEventListener(‘progress’, progressHandlingFunction.bind(file)); // For handling the progress of the upload //xhr.upload.addEventListener(‘loadend’, successHandler.bind(xhr)); } //console.log(xhr); return xhr; }, beforeSend: beforeSendHandler.bind(file), success: completeHandler.bind(file), //error: errorHandler, data: formData, […]

修改jQuery ajax请求连接头

我正在尝试使用以下代码修改Connection标头但没有成功 jQuery.ajax({ url: URL, async: boolVariable, beforeSend: function(xhr) { xhr.setRequestHeader(“Connection”, “close”); } }) 通过Firebug显示的请求标头: Connection keep-alive X-Requested-With XMLHttpRequest 设置此特定标头的任何奇怪错误/问题都已知? 或者有什么我做错了吗?

jquery getResponseHeader总是返回’undefined’?

我有一个表格,我通过ajax提交。 我正在使用jquery表单插件。 我想要做的是获取从我的服务器返回的’Location’标题。 我可以在萤火虫中看到它。 但是每当我在成功回调中调用getResponseHeader()函数时,它总是返回’undefined’。 码: form.ajaxForm({ dataType: ‘xml’, data: {format: ‘xml’}, resetForm: true, success: function(xml,status,xhr){ var location = xhr.getResponseHeader(‘Location’); alert(location); }); 位置未定义。 但我可以在萤火虫中看到“位置”标题。 我错过了什么? 即使我从xhr对象调用getAllResponseHeaders(),它也会返回’undefined’

jQuery $ .ajax或$ .load是否允许responseType arrayBuffer?

我开始使用Web Audio API,只是想知道是否可以使用jQuery的$ .ajax或$ .load函数来生成接收音频数据的XMLHttpRequest。 $ .ajax或$ .load是否支持responseType = arrayBuffer? 编辑: 好的,所以这就是我到目前为止所拥有的: function loadAudio() { $.ajax({ url: sourceUrl }).done(function(response){ return response; }) } 但我需要返回一个ArrayBuffer。 那么如何将响应转换为ArrayBuffer?

Etag标头不是从jQ​​uery.ajax()跨源XHR返回的

为什么以下最小例子中的jqXHR.getAllResponseHeaders()没有返回Etag头? 运行: node etag-server.js (然后访问http://localhost:8080/ ) ETAG-server.js var fs = require(‘fs’), http = require(‘http’); var webServer = http.createServer(function (request, response) { response.writeHead(200, {“Content-Type”: “text/html”}); response.end(fs.readFileSync(‘frontend.html’)); }); var apiServer = http.createServer(function (request, response) { response.writeHead(200, { ‘Access-Control-Allow-Origin’: ‘http://localhost:8080’, ‘Cache-Control’: ‘no-cache’, ‘Content-Type’: ‘application/json; charset=utf-8’, ‘Etag’: 123, ‘Expires’: -1, ‘Pragma’: ‘no-cache’ }); response.end(JSON.stringify({ data: [1, 2, 3] })); […]

自定义XMLHttpRequest.prototype.open

var open = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function(method, uri, async, user, pass) { this.addEventListener(“readystatechange”, function(event) { if(this.readyState == 4){ var self = this; var response = { method: method, uri: uri, responseText: self.responseText }; console.log(response); } else { console.log(this.readyState); } }, false); open.call(this, method, uri, async, user, pass); }; 我正在尝试在发送之前听XHR。 在$.ajax方法中类似于jQuery的beforeSend 。 我的目标是在发送之前监听所有XHR。 如果this.readyState === 1我想最接近的是检查上面的this.readyState […]

将自定义http标头添加到所有jQuery AJAX请求中

澄清一点:我在向jQuery ajax调用添加自定义标头时没有任何问题,我希望自动将我的自定义标头添加到所有ajax调用中。 如果你看一下jquery $ .ajax自定义http头问题 (不是我的问题),你会看到一个很好的例子,说明如果手动为每个ajax调用实现代码的工作方式。 我想覆盖所有jQuery ajax调用的beforeSend。 根据jQuery文档,我可以通过使用jQuery.ajaxSetup()来做到这一点,但有一个警告说你可能不应该,可能会导致意外行为,所有这些。 对于这种全球回调,他们建议使用.ajaxStart()。 .ajaxStart()看起来很棒,除了它不公开XHR所以我可以添加标题。 我应该使用ajaxSetup添加beforeSend吗? 有没有办法从ajaxStart访问XHR? 其他选择?

jqXHR – http-status-code-403(但状态码为0)

我得到状态码0 …但它是代码403.谁能告诉我问题是什么? JQUERY var jqxhr = $.ajax({ url: ‘http://gdata.youtube.com/feeds/api/users/bernd/favorites?alt=json’, dataType: ‘json’ }).success(function(xhr) { alert(xhr.status); }).error(function(xhr) { alert(xhr.status); return false; }) 演示 – > http://jsfiddle.net/QFuBr/ 提前致谢! 彼得