标签: xmlhttprequest

如果有来自xmlhttprequest的set-cookie响应,浏览器是否会尊重它并设置cookie?

我不是要尝试使用xmlhttprequest发送cookie数据,而是尝试使用xmlhttprequest为会话设置cookie而无需用户交互.

cookies xmlhttprequest

11
推荐指数
1
解决办法
3572
查看次数

VBScript:禁用从服务器到HTTP GET URL请求的响应缓存

我想关闭在Windows机器上的应用程序中运行的VBScript对服务器进行URL调用时使用的缓存.我用什么函数/方法/对象来做这个?

当第一次进行调用时,我的基于Linux的Apache服务器从正在运行的CGI Perl脚本返回响应.但是,后续运行的脚本似乎使用了与第一次相同的响应,因此数据正在某处缓存.我的服务器日志确认在以后的那些时间内没有调用服务器,仅在第一次.

这就是我在做的事情.我在商业应用程序中使用以下代码(不想提及此应用程序,可能与我的问题无关):


With CreateObject("MSXML2.XMLHTTP")
  .open "GET", "http://myserver/cgi-bin/nsr/nsr.cgi?aparam=1", False
  .send
  nsrresponse =.responseText
End With
Run Code Online (Sandbox Code Playgroud)

在上面的对象上是否有一个函数/方法来关闭缓存,或者我应该在创建URL之前调用一个方法/函数来关闭响应对象的缓存?

我在这里寻找解决方案:http://msdn.microsoft.com/en-us/library/ms535874(VS.85).aspx - 不是很有帮助.在这里:http://www.w3.org/TR/XMLHttpRequest/ - 非常不友好,难以阅读.

我也试图强制不使用http标头设置和html文件头元数据缓存:

服务器端Perl CGI脚本的片段,它将响应返回给调用客户端,将expiry设置为0.


    print $httpGetCGIRequest->header(
        -type    => 'text/html',
        -expires => '+0s',
        );
Run Code Online (Sandbox Code Playgroud)

响应中的Http头设置发送回客户端:


<html><head><meta http-equiv="CACHE-CONTROL" content="NO-CACHE"></head>
<body>
response message generated from server
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

上面的http标头和html文档头设置都没有用,因此我的问题.

vbscript caching response xmlhttprequest

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

未捕获错误:INVALID_STATE_ERR:DOM异常11

我收到以下错误.

未捕获错误:INVALID_STATE_ERR:DOM异常11

这是我得到Error RUN TIME的代码.

xhttp.setRequestHeader("Content-type","application/xhtml+xml");<br>
xhttp.open("POST",xmlFile,true);<br>
xhttp.send(postData);
Run Code Online (Sandbox Code Playgroud)

我尝试使用falsexhttp.open的第三个参数.
有谁能告诉我是什么原因造成的?

javascript android xmlhttprequest domexception cordova

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

XMLHttpRequest同源策略

我花了最后3天研究如何使用XMLHttpRequest创建跨域请求.最好的替代方案确实是我已经使用的JSONP.

但我还有一个问题,我无法找到答案.我阅读了数百个帖子(包括SO),没有人有一个很好的可靠回答(很好的参考).希望有人可以提供帮助.

说,我在许多网站上读到,由于安全原因,我无法从域aaa.com向bbb.com发出Ajax请求并获取我想要的数据.这很清楚,我对此毫无疑问.但问题是当我在我的localhost中运行下面的代码时(所以我的域名是"localhost",我不应该从另一个域请求任何数据).

xhReq = new XMLHttpRequest();
xhReq.open("GET","http://domain.com?parameter",true);
xhReq.send(null);
Run Code Online (Sandbox Code Playgroud)

当我检查Firebug Net选项卡时,我发现请求未被阻止!明确要求.我简直不敢相信.所以我在domain.com/log.php中创建了一个文件,在那里我可以记录任何访问我域名的请求.令人惊讶的是,我解雇localhost的所有请求都是我的域名网站.当我尝试获取响应时,由于我的Chrome和FIrebug浏览器的原始策略相同,我实在无法得到它.但我真的很惊讶,尽管我无法操纵响应,但请求真的打到了网络服务器.

更令人惊讶的是,如果domain.com/log.php生成一个像1MB这样大的响应,我的firebug告诉我浏览器确实从网络服务器下载了所有1MB,并且最后它按预期显示"拒绝访问"消息.因此,如果相同的原始策略禁止读取该数据,为什么要下载所有文件.

最后,我让我惊讶的是,我读到的所有网站和规范都说非常清楚,当目标域与源域不匹配时,使用Ajax阻止了请求.但显然,通过我的实验,尽管我无法访问响应数据,但请求仍在完成.

令我不安的是,它可能会打开一个大的安全漏洞,每天有数千个视图的网站可以运行这个3行代码,并在一个不友好的网站上引起巨大的Ddos攻击,只是让用户在另一个网站请求一个页面由于浏览器不会阻止请求,因此间隔较小.

我在IE 7,8和9以及Chrome最新和Firefox最新版本中测试了这个脚本,行为是相同的:请求已完成,浏览器下载了所有响应,但没有让它可以执行SOP.

希望有人可以解释为什么规格是如此错误或者我理解错误!

javascript ajax xmlhttprequest

11
推荐指数
1
解决办法
5384
查看次数

Chrome上的XMLHttpRequest onprogress total总是为0

我试图在同一网站内从一个页面导航到另一个页面之前显示进度条.

我的函数将updateProgress函数绑定到XMLHttpRequest onprogress事件,并将用户重定向到新页面(xhr.readyState == 4 && xhr.status == 200)似乎工作正常,但Chrome显示"总计"为零,赢得了' t让进度条正常运行.我的代码如下.

先感谢您...

$('.ajaxNavi').click(function (e) {
  e.preventDefault();
  var url = $(this).attr('href');
  var xhr = new XMLHttpRequest();
  xhr.onprogress = updateProgress;
  xhr.onreadystatechange = function () { 
    if (xhr.readyState == 4 && xhr.status == 200)
    // REDIRECT HERE
    }
  });
  xhr.open("GET", url, true);
  xhr.setRequestHeader("Content-Type", "text/html");
  xhr.send();
});

function updateProgress(e) {
  console.log(e.loaded + '    ' + e.total);
}
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery google-chrome xmlhttprequest

11
推荐指数
1
解决办法
3407
查看次数

通过HTTP将数据从浏览器流式传输到服务器的方法

是否有类似XHR的浏览器API可用于通过HTTP将二进制文件流式传输到服务器?

我希望随着时间的推移制作HTTP PUT请求并以编程方式创建数据.我不想一次创建所有这些数据,因为它可能会在内存中出现.一些psueudo代码来说明我所得到的:

var dataGenerator = new DataGenerator(); // Generates 8KB UInt8Array every second
var streamToWriteTo;
http.put('/example', function (requestStream) {
  streamToWriteTo = requestStream;
});

dataGenerator.on('data', function (chunk) {
  if (!streamToWriteTo) {
    return;
  }
  streamToWriteTo.write(chunk);
});
Run Code Online (Sandbox Code Playgroud)

我现在有一个Web套接字解决方案,但更喜欢常规HTTP,以便更好地与一些现有的服务器端代码互操作.

编辑:我可以使用最前沿的浏览器API.我正在查看Fetch API,因为它支持请求体的ArrayBuffers,DataViews,Files等.如果我能以某种方式伪造其中一个对象,以便我可以使用动态数据的Fetch API,这对我有用.我尝试创建一个Proxy对象,看看是否有任何方法被调用,我可以修补.不幸的是,似乎浏览器(至少在Chrome中)正在使用本机代码而不是JS版本进行读取.但是,如果我错了,请纠正我.

javascript browser http xmlhttprequest

11
推荐指数
3
解决办法
5794
查看次数

XMLHttpRequest从远程主机获取HTTP响应

为什么以下代码基于Mozilla示例不起作用?尝试使用Firefox 3.5.7和Chrome.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
</body>
  <script>
    var req = new XMLHttpRequest();
    req.open('GET', 'http://www.mozilla.org/', false); 
    req.send();
    if(req.status == 200) {
        alert(req.responseText);
    }
  </script>  
</html>
Run Code Online (Sandbox Code Playgroud)

请浏览器从本地磁盘中提取html(文件:/// C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html)

在Firefox上它会出现以下错误:

uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html :: <TOP_LEVEL> :: line 10" data: no]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我想向远程主机提交请求并提醒结果(稍后添加到div中).

javascript xmlhttprequest

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

WebSockets与XHR之间的大量数据

我在NodeJS上运行SocketIO,我不太关心广泛的浏览器支持,因为这是我的宠物项目,我想利用新技术的所有功能来简化开发.我关心的是如何将大量的JSON数据从服务器发送到客户端并返回.嗯,这些数量不像视频或图像二进制数据那么大,我想每个请求不超过几百千字节.

我看到的两个场景是:

  1. 通过WebSockets从服务器向客户端发送应该获取某些数据的通知.然后客户端代码向服务器运行常规XHR请求,并通过XHR获取一些数据.
  2. 通过WebSockets将整个数据集从服务器发送到客户端.在这种情况下,我不需要运行任何其他请求 - 我只是通过WebSockets获取所有数据.

我在Meteor.js中看到了第一个案例,所以我想知道它的原因.请分享您的意见.

javascript xmlhttprequest websocket node.js socket.io

10
推荐指数
1
解决办法
8970
查看次数

xmlhttprequest同时请求不起作用

我正在尝试制作"许多" xhr请求,但似乎每次在提出另一个请求之前等待答案.这就像XHR组成队列并始终等待前一个请求完成.

如何同时运行更多xhr请求?

$('body').delegate('.download','click', function(evt){
        evt.preventDefault(); // Not related

        var xhr = new XMLHttpRequest();
        xhr.open('GET', "proxy.php?" + this.href, true);
        xhr.responseType = 'blob';

        xhr.onload = function() {
            if (this.status == 200) {              
                var blob = new Blob([this.response], {type:'audio/mp4'});

                console.log(blob.size);
                if(blob.size > 0){
                    $("<a>").attr({
                        download: name,
                        href: URL.createObjectURL(blob),
                        target: "_blank"
                    })[0].click();
                }
            }
        };  
        xhr.send();
    });
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous xmlhttprequest

10
推荐指数
1
解决办法
421
查看次数

使用XMLHttpRequest发布到ASP.Net Core WebAPI时出现错误415

使用WebAPI后端服务器处理新项目,我无法从实际网站发布到控制器,尽管Postman没有问题发布到控制器.我收到错误415,浏览器控制台记录:

HTTP415: UNSUPPORTED MEDIA TYPE - The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.
(XHR)OPTIONS - http://localhost:5000/api/Users
Run Code Online (Sandbox Code Playgroud)

来自Kestrel的日志是

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 OPTIONS http://localhost:5000/api/Users  0
Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request starting HTTP/1.1 OPTIONS http://localhost:5000/api/Users  0
info: Microsoft.AspNetCore.Mvc.StatusCodeResult[1]
      Executing HttpStatusCodeResult, setting HTTP status code 415
Microsoft.AspNetCore.Mvc.StatusCodeResult:Information: Executing HttpStatusCodeResult, setting HTTP status code 415
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
      Executed action SchoolsChat.Controllers.UserContoller.Post (SchoolsChat) in 2.5323ms
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executed …
Run Code Online (Sandbox Code Playgroud)

c# asp.net xmlhttprequest typescript asp.net-core

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