标签: xmlhttprequest

有没有办法在使用XmlHttpRequest时抑制浏览器在401响应上的登录提示

我正在使用jQuert .ajax函数来调用页面方法.该网站正在使用FormsAuthentication.因此,当身份验证票证到期时,对页面方法的调用显然会导致重定向到登录页面.

现在,编写System.Web.Handlers.ScriptModule的天才决定,如果出于某种原因对页面方法或Web服务方法进行REST样式调用,从JavaScript导致302重定向,他们只是简单地转向回应401未经授权.这导致浏览器弹出一个完全误导的登录UI,因为用户试图输入他们的用户名和密码,这意味着什么,因为使用了FormsAuthentication.最后,当用户单击"取消"时,401将进入错误处理程序.

那么,问题是,如何以任何方式禁用浏览器的登录UI提示?网上有些人建议在XHR请求中使用用户名和密码,但它似乎不起作用.

ajax firefox jquery internet-explorer xmlhttprequest

8
推荐指数
1
解决办法
5244
查看次数

什么是一种简单的方法来查看正在进行的AJAX调用?

我正在寻找一些东西(最好是Firefox扩展程序),它可以让我看到所有的AJAX子请求.基本上,无论何时生成XMLHTTPRequest(),我都想知道正在请求什么URL以及与它一起传递了什么(如果有的话)GET和POST变量.

除非我错过了,否则我在Firebug或Web Developer Toolbar中看不到任何类似的内容.

(如果你很好奇,想要这个的主要原因是我想要抓一个使用JS加载其所有内容的网站的本地副本,我不想花费数小时挖掘他们的JS代码当我能看到正在制作的子请求时.)

javascript debugging ajax xmlhttprequest

8
推荐指数
4
解决办法
8198
查看次数

GWT-RPC与HTTP呼叫 - 哪个更好?

我正在评估使用GWT-RPC和HTTP Call进行的调用之间是否存在性能差异.

我的appln服务作为Java servlet托管,我目前正在使用HTTPProxy连接从它们获取数据.我希望将它们转换为GWT-RPC调用,如果这会带来性能提升.

我想知道每个人的利弊...

还有关于衡量异步调用性能的工具的任何建议......

[ 关于可以与GWT一起使用的各种服务器通信策略的好文章.]

gwt asynchronous xmlhttprequest gwt-rpc

8
推荐指数
2
解决办法
7549
查看次数

node.js https请求和XMLHttpRequest之间有什么区别?

通过node.js模块发送的HTTPS请求与XMLHttpRequest之间有什么区别?

我正在尝试向amazon aws发送HTTPS GET请求以从javascript(XMLHttpRequest)获取安全令牌,并且它始终失败,并且"来源控制 - 允许 - 来源"不允许"来源http:// my_ip ",但是如果我通过node.js模块发送相同的HTTPS GET请求它工作正常.

我对此感到困惑,因为如果服务器确实支持CORS,那么来自任何地方的任何请求都应该失败,但是它通过node.js,但不是通过XMLHttpRequest.

这失败

var url_ = "https://sts.amazonaws.com/?Action=GetSessionToken" +
            "&DurationSeconds=3600" +
            "&AWSAccessKeyId=XXXXXXXXXXXXXXX" +
            "&Version=2011-06-15" +
            "&Timestamp=" + encode(timestamp) +
            "&Signature=" + encode(hash) +
            "&SignatureVersion=2&SignatureMethod=HmacSHA256";

// Simple GET request
$.get(url_, function(data) {
    alert("response: " + data);
});
Run Code Online (Sandbox Code Playgroud)

这个工作

var https = require('https');
var options = {
    host    : 'sts.amazonaws.com',
    method  : 'GET',
    path    : '/?Action=GetSessionToken' +
              '&DurationSeconds=3600' +
              '&AWSAccessKeyId=XXXXXXXXXXXXXX' +
              '&Version=2011-06-15' +
              '&' + timestamp +
              '&' + signature +
              '&SignatureVersion=2&SignatureMethod=HmacSHA256' …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest node.js

8
推荐指数
1
解决办法
4024
查看次数

如何检索AMD化Dojo的XHR响应代码(+时间戳)?

使用"旧"Dojo,可以将第二个参数传递给Xhr请求ioargsload函数(参见此处的示例6).这ioargs提供了(除其他外)请求的时间戳和状态代码.

但是,如何通过新的"更清洁"(和向前兼容)Dojo实现这一目标?
不幸的是,我在当前的文档中找不到任何提示.

以下应该是上面引用的"新"Dojo示例的端口.但是,ioargs将是未定义的:

require( "dojo/request/xhr", "dojo/dom", "dojo/domReady!",
  function(request, dom){
    // Look up the node we'll stick the text under.
    var targetNode = dom.byId("getLicenseStatus");

    // The parameters to pass to xhrGet, the url, how to handle it, and the callbacks.
    request.get(
      "{{dataUrl}}dojo/LICENSE",
      {
        handleAs: "text",
        preventCache: true
      }
    ).then(
      function(data, ioargs){
        // FIXME: ioargs is undefined
        targetNode.innerHTML = "XHR returned HTTP status: " + ioargs.xhr.status;
      },
      function(error){
        targetNode.innerHTML …
Run Code Online (Sandbox Code Playgroud)

javascript dojo xmlhttprequest

8
推荐指数
1
解决办法
5641
查看次数

如何使用easyXDM通过AJAX帖子将javascript对象/数组作为键值对发送?

最近我意识到我需要使用easyXDM而不是jQuery $.ajax来进行跨域发布请求.在设置easyXDM后,我发现这些功能非常接近:

jQuery的:

$.ajax({
    url: "/ajax/",
    method: "POST",
    data: myData
});
Run Code Online (Sandbox Code Playgroud)

easyXDM:

xhr.request({
    url: "/ajax/",
    method: "POST",
    dataType: 'json', // I added this trying to fix the problem, didn't work
    data: myData
});
Run Code Online (Sandbox Code Playgroud)

myData设置如下:

myData = {};
myData[1] = 'hello';
myData[2] = 'goodbye';
myData[3] = {};
myData[3][1] = 'sub1';
myData[3][2] = 'sub2';
myData[3][3] = 'sub3';
Run Code Online (Sandbox Code Playgroud)

当我使用jQuery发出请求时,它正确处理子字段,但不使用easyXDM.

以下是POST请求如何通过jQuery进入服务器:

screenshot-with-shadow.png http://img37.imageshack.us/img37/4526/screenshotwithshadow.png

以下是easyXDM的用法:

screenshot-with-shadow.png http://img204.imageshack.us/img204/4526/screenshotwithshadow.png

如何通过像jQuery这样的easyXDM/XHR请求发送javascript对象/键值对数组?

javascript ajax jquery json xmlhttprequest

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

将此cURL转换为Guzzle

我试过阅读Guzzle文档,但我无法解决这个问题.

我想使用Guzzle代替cURL以下内容:

protected $url = 'https://secure.abcdef.com/cgi/xml_request_server.php';

    $xml =  "<ABCRequest>\n";
    $xml .=     "<Authentication>\n";
    $xml .=         "<ABLogin>$this->gwlogin</ABLogin>\n";
    $xml .=         "<ABKey>$this->gwkey</ABKey>\n";
    $xml .=     "</Authentication>\n";
    $xml .=     "<Request>\n";
    $xml .=            "<RequestType>SearchABC</RequestType>\n";
    $xml .=        "</Request>\n";
    $xml .= "</ABCRequest>\n";

    $header =  "POST $this->url HTTP/1.1\n";
    $header .= "Host: domain.com\n";
    $header .= "Content-Length: ".strlen($xml)."\n";
    $header .= "Content-Type: text/xml; charset=UTF8\n";
    $header .= "Connection: close; Keep-Alive\n\n";
    $header .= $xml;

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $this->url);
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);

    $response = curl_exec($ch);
    curl_close($ch);
Run Code Online (Sandbox Code Playgroud)

我试过这个,但我还是新来的......:

$client …
Run Code Online (Sandbox Code Playgroud)

php xml xmlhttprequest guzzle

8
推荐指数
1
解决办法
6987
查看次数

使用XMLHttpRequest抑制控制台错误

我正在尝试在Javascript中编写一个"fileExists"函数,它只是向服务器发送请求,如果发回404状态则返回false.

该功能完美无缺,但我似乎无法抑制我在谷歌Chrome控制台中收到的错误信息:GET /something/foobar 404 (Not Found).

有没有人知道解决这个问题的方法?

作为参考,这是我正在使用的代码:

    var fileExists = function(url) {
        var req = new XMLHttpRequest();
        req.open('GET', url, false);
        req.send();
        return req.status === 200;
    };
Run Code Online (Sandbox Code Playgroud)

提前致谢!

javascript ajax xmlhttprequest http-status-code-404

8
推荐指数
1
解决办法
3891
查看次数

How to download large file with JavaScript

I need to download a large file with JavaScript using XMLHttpRequest or fetch without saving the file first in the RAM-Memory.

Normal link download doesn't work for me, because I need to send a Bearer Token in the header of the request.

我可以设法下载一个文件,但是这个“解决方案”,它首先将文件保存在 RAM 内存中,然后再出现保存对话框,这样如果文件大于可用的 RAM 内存,浏览器就会刹车。

这是我使用 fetch 的“解决方案”:

        var myHeaders = new Headers();
        myHeaders.append('Authorization', `Bearer ${token}`);

        var myInit = { method: 'GET',
            headers: myHeaders,
            mode: 'cors',
            cache: 'default' };
        var a = document.createElement('a');

        fetch(url,myInit)
            .then((response)=> {
                return response.blob(); …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest fetch-api

8
推荐指数
1
解决办法
6819
查看次数

axios onUploadProgress和onDownloadProgress无法与CORS一起使用

我有一个用Node.js编写的服务器,以及一个在浏览器中运行的Web客户端。客户端应从服务器上载一些文件并将其下载到服务器。服务器不是最初交付客户端的服务器,因此这里存在跨域情况。

服务器使用cors中间件来启用跨域请求。由于我还使用了许多自定义标头,因此将其与如下配置一起使用:

api.use(cors({
  origin: '*',
  allowedHeaders: [ 'content-type', 'authorization', 'x-metadata', 'x-to' ],
  exposedHeaders: [ 'content-type', 'content-disposition', 'x-metadata' ]
}));
Run Code Online (Sandbox Code Playgroud)

相反,客户端使用axios,并且上传文件的代码如下所示:

await axios({
  method: 'post',
  url: 'https://localhost:3000/api/v1/add-file',
  data: content,
  headers: {
    // ...
  }
});
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都按预期工作,并且特别适用于CORS。

现在,我想跟踪上传的进度,因此,如其文档onUploadProgress所述axios,我将回调添加到了调用中:

await axios({
  method: 'post',
  url: 'https://localhost:3000/api/v1/add-file',
  data: content,
  headers: {
    // ...
  },
  onUploadProgress (progressEvent) {
    console.log({ progressEvent });
  }
});
Run Code Online (Sandbox Code Playgroud)

如果我现在运行客户端,则上载仍然有效–但onUploadProgress永远不会调用回调。我已经了解到,并不是所有的浏览器都支持此功能(内部仅绑定到onprogress基础XmlHttpRequest对象的事件),但是最新的Chrome应该可以做到这一点(如果我尝试使用不涉及CORS的其他设置,则一切似乎都可以做到)工作)。因此,我认为这是一个CORS问题。

读到,一旦您向onprogress事件添加侦听器,就会发送预检请求。这又意味着服务器必须接受OPTIONS请求。为此, …

javascript xmlhttprequest node.js cors axios

8
推荐指数
1
解决办法
1603
查看次数