标签: xmlhttprequest

如何在XMLHttpRequest中获取响应URL?

有一个页面(url),我通过XMLHttpRequest请求它,但是我没有得到请求的URL的响应,它正在将请求发送到另一个页面,

请求---> page.php
从> directedpage.php获取响应

问题是如何获得响应网址?(示例中为directedpage.php)

javascript ajax response xmlhttprequest

15
推荐指数
1
解决办法
2万
查看次数

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

澄清一点:我没有任何问题在我的jQuery ajax调用中添加自定义标头,我希望自动将我的自定义标头添加到所有ajax调用中.

如果你看一下jquery $ .ajax自定义http头问题(不是我的问题),你会看到一个非常好的例子,说明如果手动为每个ajax调用实现代码的工作方式.

我想覆盖所有jQuery ajax调用的beforeSend.据jQuery的文档,我可以利用这样做jQuery.ajaxSetup() ,但有一个警告,说你可能不应该,可能会导致意外的行为,所有的东西.对于这种全局回调,他们建议使用.ajaxStart(). .ajaxStart()看起来很棒,除了它不公开XHR所以我可以添加标题.

我应该使用ajaxSetup添加beforeSend吗?有没有办法从ajaxStart访问XHR?其他选择?

authentication ajax jquery xmlhttprequest http-headers

15
推荐指数
2
解决办法
2万
查看次数

自v38起,Chrome扩展程序无法再从HTTP网址加载,解决方法?

我们网站的用户运行我们的Chrome插件,其中包括Chrome扩展程序开发页面中所述的XMLHttpRequest执行跨源请求.这已经运行了好几年了.但是,自从我们的用户升级到最新版本的Chrome(v38)后,这些请求都失败了.我们的网站使用HTTPS运行,并且通过我们的内容脚本加载的一些网址在HTTP上.消息是:

[已屏蔽]" https://www.ourpage.com/ "上的页面是通过HTTPS加载的,但是运行了来自" http://www.externalpage.com "的不安全内容:此内容也应通过HTTPS加载.

发生错误的报告行位于我发出HTTP调用的内容脚本中:

xhr.send(null);
Run Code Online (Sandbox Code Playgroud)

我无法控制外部页面,我宁愿不从我们自己的页面中删除SSL.问题:这是一个错误还是有一个我不知道的解决方法?

(注意:清单中的权限始终设置为<all_urls>已经工作了很长时间.将其设置为http://*/https://*/没有帮助.)

google-chrome xmlhttprequest cross-domain google-chrome-extension

15
推荐指数
1
解决办法
3万
查看次数

json xhr响应打开一个下载文件弹出窗口

对于我们的一个ajax请求(带有.json响应),我们的一些客户抱怨他们看到"文件下载"提示要求用户下载.json响应.我感到困惑,因为考虑到这是一个xhr响应,这应该永远不会发生.有没有人见过这个?

谢谢

json prompt xmlhttprequest download

14
推荐指数
2
解决办法
9841
查看次数

跨域JSON请求?

题:

我正在尝试使用JSON跨域,但我找到的只是JSON解析器,我不需要...
我已经读过可以使用JSON进行跨域请求,但到目前为止,我只看到了是使用XMLHttpRequest的实现...
- 这意味着你不能使用跨域请求,至少不是在IE 8之外...
我一直在http://www.json.org/,但我发现是解析器还是无用的.

到目前为止,我发现谷歌最好的是
http://devpro.it/JSON/files/JSONRequest-js.html,
但这相当混乱,不能跨域工作,域内也不行 - 或者更确切地说一点也不...

var the_object = {}; 
var http_request = new XMLHttpRequest();
http_request.open( "GET", url, true );
http_request.onreadystatechange = function () {
    if ( http_request.readyState == 4 && http_request.status == 200 ) {
            the_object = JSON.parse( http_request.responseText );
        }
};
http_request.send(null);
Run Code Online (Sandbox Code Playgroud)

javascript json xmlhttprequest

14
推荐指数
2
解决办法
3万
查看次数

如何从Ajax调用修改Cookie

我有这个代码:

window.onload = function() {
        document.cookie = 'foo=bar; expires=Sun, 01 Jan 2012 00:00:00 +0100; path=/';
        var xhr = new XMLHttpRequest();
        xhr.open("GET", "/showcookie.php",true);
        xhr.setRequestHeader("Cookie", "foo=quux");

        xhr.setRequestHeader("Foo", "Bar");
        xhr.setRequestHeader("Foo", "Baz");

        xhr.withCredentials = true;
        var pre = document.getElementById('output');
        xhr.onreadystatechange = function() {
            if (4 == xhr.readyState) {
                pre.innerHTML += xhr.responseText + "\n";
            }
        };
        xhr.send(null);
    };
Run Code Online (Sandbox Code Playgroud)

这个/showcookie.php

<?php

print_r($_COOKIE);

?>
Run Code Online (Sandbox Code Playgroud)

它总是显示出来

Array
(
    [Host] => localhost
    [User-Agent] => 
    [Accept] => 
    [Accept-Language] => pl,en-us;q=0.7,en;q=0.3
    [Accept-Encoding] => gzip,deflate
    [Accept-Charset] => ISO-8859-2,utf-8;q=0.7,*;q=0.7
    [Keep-Alive] => 115
    [Connection] …
Run Code Online (Sandbox Code Playgroud)

javascript cookies xmlhttprequest

14
推荐指数
1
解决办法
1万
查看次数

当$ .ajax的响应为301时,我可以通过编程方式获取新的URL吗?

当对xhr请求的响应是301时,有没有办法获取最终重定向到的URL?

我的网站包含来自旧版本的大量遗留网址,这些网址会返回301对正确新网址的回复.

出于实用目的,我希望能够向旧URL发出请求,并能够检索新的URL,即发送请求到"/oldpage.aspx?foo=someParam",获取新的URL"/ arbitaryNewPageName/someParam".

我在firebug控制台中一直在玩这个:

    $.ajax({
            url: "/oldpage.aspx?foo=someParam", 
            success: function(response, status, jqxhr){
            //poking around, trying to get the new URL, "/arbitraryNewPage/someParam"
                console.log(jqxhr.getAllResponseHeaders());
                console.log(jqxhr);
            },
            beforeSend: function(jqxhr, settings){
                console.log(jqxhr);
                console.log(settings);
            }
        });
Run Code Online (Sandbox Code Playgroud)

我可以在firebug中看到,当这段代码运行时,它会对"/oldpage.aspx?foo=someParam"执行一次GET,并获得301响应,然后获得另一个GET到"/ arbitaryNewPageName/someParam".

对于第一个请求,我在响应标头的Location值中看到重定向的URL.不幸的是,第二个请求是传递给$ .ajax.success函数的内容,它只在请求头的Referrer值中有重定向的URL.

是否有可能拦截对第一个响应的响应,或者可能会看到第二个请求的请求标头?

编辑:感谢大家的回复.我想我需要提供一些背景来澄清我到底在寻找什么.

业务用户要求我创建一个将旧URL与新URL相关联的列表.由于我已经实现了将旧URL重定向到服务器上的新URL的方法,因此我希望能够减少这项工作,并创建一个脚本,将请求放置到旧URL并获取请求被重定向到的URL.像这样的东西:

for (var i = 0; i < arrayOfLegacyUrls.length; i++)
{
    $.ajax({
            url: arrayOfLegacyUrls[i], 
            success: function(response, status, jqxhr){
                var newUrl = "???"; //do magic to get URL that request was redirected to

                writeToFileForBusinessUser(arrayOfLegacyUrls[i], newUrl);
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

我的问题的关键在于:我可以从XHR获取我的请求被重定向到的URL吗?到目前为止,答案似乎是"不".

javascript jquery xmlhttprequest jqxhr

14
推荐指数
1
解决办法
7039
查看次数

xmlhttprequest和set-cookie&cookie

我想我误解了用xmlhttprequest管理cookies.我有一个响应的服务器XMLHttpRequest在JavaScript做,我的服务器返回Allow-Control-Access-Origin,Access-Control-Allow-Headers,Access-Control-Expose-HeadersAccess-Control-Allow-Credentials用正确的值标题.

我正在使用javascript在服务器上进行摘要身份验证,没有问题,我收到WWW-Authenticate来自服务器的标题,我处理并向服务器发送带有所有摘要响应的授权标头,一切正常.问题是,当摘要挑战成功时,我的服务器返回一个Set-Cookie标头,我必须得到它并添加到我的所有xhr请求的其余部分.浏览器(使用Chromium和Chrome)不允许我访问标题:

xhr.getResponseHeader("Set-Cookie");
Run Code Online (Sandbox Code Playgroud)

好吧,在XMLHTTPREQUEST Level 2中它说:"返回响应中的所有头文件,除了那些字段名称为Set-Cookie或Set-Cookie2的头文件"好的,所以我不能接受它,但有什么办法?使用Chrome Api进行Cookie(目前我还没有注意到它的注意事项),但我希望以标准的方式做到可行.随着:

xhr.withCredentials = true;
Run Code Online (Sandbox Code Playgroud)

意味着浏览器自动获取set-cookie并发送cookie头?

javascript cookies xmlhttprequest setcookie cors

14
推荐指数
1
解决办法
3万
查看次数

使用XMLHttpRequest上传大文件时的进度条

我正在尝试使用XMLHttpRequest和file.slice将一些大文件上传到服务器.
我已经在文档和其他各种链接的帮助下做到了这一点.
由于上传大文件是一项很长的工作,我想为用户提供一个进度条.
经过一些更多的阅读后,我遇到了一个例子,从理论上讲,它完全符合我的需要.
通过获取示例代码并使其适应我的需求,我达成了

var upload =
{
blobs: [],
pageName: '',
bytesPerChunk: 20 * 1024 * 1024,
currentChunk: 0,
loaded: 0,
total: 0,
file: null,
fileName: "",

uploadChunk: function (blob, fileName, fileType) {
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.responseText) {
                // alert(xhr.responseText);
            }
        }
    };

    xhr.addEventListener("load", function (evt) {
        $("#dvProgressPrcent").html("100%");
        $get('dvProgress').style.width = '100%';
    }, false);

    xhr.addEventListener("progress", function (evt) {
        if (evt.lengthComputable) {
            var progress = …
Run Code Online (Sandbox Code Playgroud)

javascript jquery file-upload xmlhttprequest

14
推荐指数
2
解决办法
5万
查看次数

CORS请求是预检的,但它似乎不应该是

以下跨源POST请求,其内容类型为multipart/form-data且只有简单的标题是预检的.根据W3C规范,除非我读错了,否则不应该预先检查.我已经证实这种情况发生在Chrome 27和Firefox 10.8.3中.我没有测试任何其他浏览器.

以下是请求标头等:

Request URL:http://192.168.130.135:8081/upload/receiver
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:27129
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryix5VzTyVtCMwcNv6
Host:192.168.130.135:8081
Origin:http://192.168.130.135:8080
Referer:http://192.168.130.135:8080/test/raytest-jquery.html
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.37 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

这是OPTIONS(预检)请求:

Request URL:http://192.168.130.135:8081/upload/receiver
Request Method:OPTIONS
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:origin, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:192.168.130.135:8081
Origin:http://192.168.130.135:8080
Referer:http://192.168.130.135:8080/test/raytest-jquery.html
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.37 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

规范似乎很清楚:

更新:这是一些简单的客户端代码,它将重现这一点: …

multipartform-data xmlhttprequest cors xmlhttprequest-level2

14
推荐指数
1
解决办法
2304
查看次数