<tfoot id='gzUBO'></tfoot>

    <small id='gzUBO'></small><noframes id='gzUBO'>

    <legend id='gzUBO'><style id='gzUBO'><dir id='gzUBO'><q id='gzUBO'></q></dir></style></legend>

      • <bdo id='gzUBO'></bdo><ul id='gzUBO'></ul>

    1. <i id='gzUBO'><tr id='gzUBO'><dt id='gzUBO'><q id='gzUBO'><span id='gzUBO'><b id='gzUBO'><form id='gzUBO'><ins id='gzUBO'></ins><ul id='gzUBO'></ul><sub id='gzUBO'></sub></form><legend id='gzUBO'></legend><bdo id='gzUBO'><pre id='gzUBO'><center id='gzUBO'></center></pre></bdo></b><th id='gzUBO'></th></span></q></dt></tr></i><div id='gzUBO'><tfoot id='gzUBO'></tfoot><dl id='gzUBO'><fieldset id='gzUBO'></fieldset></dl></div>
    2. 如何检索 AMD 化 Dojo 的 XHR 响应代码(+时间戳)?

      时间:2023-05-15

        <tfoot id='o9jog'></tfoot>
      1. <legend id='o9jog'><style id='o9jog'><dir id='o9jog'><q id='o9jog'></q></dir></style></legend>
          <tbody id='o9jog'></tbody>
        • <bdo id='o9jog'></bdo><ul id='o9jog'></ul>

            <small id='o9jog'></small><noframes id='o9jog'>

            <i id='o9jog'><tr id='o9jog'><dt id='o9jog'><q id='o9jog'><span id='o9jog'><b id='o9jog'><form id='o9jog'><ins id='o9jog'></ins><ul id='o9jog'></ul><sub id='o9jog'></sub></form><legend id='o9jog'></legend><bdo id='o9jog'><pre id='o9jog'><center id='o9jog'></center></pre></bdo></b><th id='o9jog'></th></span></q></dt></tr></i><div id='o9jog'><tfoot id='o9jog'></tfoot><dl id='o9jog'><fieldset id='o9jog'></fieldset></dl></div>

                本文介绍了如何检索 AMD 化 Dojo 的 XHR 响应代码(+时间戳)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                限时送ChatGPT账号..

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

                With the "old" Dojo one could pass a second argument ioargs to the load function of a Xhr request (see Example 6 here). This ioargs provided (among other things) the timestamp and status code of the request.

                但是如何使用新的更干净"(并且向前兼容)Dojo 来实现这一点?
                不幸的是,我在 当前文档中找不到任何提示.

                But how can I achieve this with the new and "cleaner" (and forward compatible) Dojo?
                Unfortunately, I could not find any hints in the current documentation.

                以下应该是上述引用示例到新"Dojo 的移植.但是,ioargs 将是未定义的:

                The following should be a port of above referenced example to the "new" Dojo. But, ioargs will be undefined:

                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 = "An unexpected error occurred: " + error.response.status + ": " + error.response.text;
                      }
                    );
                  }
                );
                

                我需要更改哪些内容才能使请求的时间戳和状态代码在加载函数中可用?

                What do I need to change to have the request's timestamp and status code available in the load function?

                推荐答案

                request 返回一个特殊的 promise (来源):

                request returns a special promise (source):

                从 dojo/request 调用返回的 Promise 有一个标准 Promise 上没有的附加属性:response.此属性是一个承诺,它将解析为更详细地描述响应的冻结对象(如果可用):

                Promises returned from dojo/request calls have an additional property not available on standard promises: response. This property is a promise that will resolve to a frozen object (where available) describing the response in more detail:

                • url - 用于发出请求的最终 URL(附加查询字符串)
                • options – 用于发出请求的选项对象
                • 文本 - 响应中数据的字符串表示
                • data – 响应中处理的数据(如果指定了 handleAs)
                • getHeader(headerName) – 从请求中获取标头的函数;如果提供者不提供标头信息,则此函数将返回 null.

                因此,您应该将 .then 链接到此 promise.response 以访问所有上述属性:

                So you should chain .then to this promise.response to get access to all the aforementioned properties:

                var promise = request.get("{{dataUrl}}dojo/LICENSE");
                
                promise.response.then(function(response) {
                    console.log("status", response.status);
                    console.log("url", response.url);
                    console.log("data", response.data);
                });
                

                在 jsFiddle 上查看一个工作示例:http://jsfiddle.net/phusick/6wB2L/

                See a working example at jsFiddle: http://jsfiddle.net/phusick/6wB2L/

                这篇关于如何检索 AMD 化 Dojo 的 XHR 响应代码(+时间戳)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:哪些浏览器在缓存 XMLHTTPRequest 响应时存在问题? 下一篇:猴子补丁 XMLHTTPRequest.onreadystatechange

                相关文章

                    <bdo id='bAUv5'></bdo><ul id='bAUv5'></ul>

                  <small id='bAUv5'></small><noframes id='bAUv5'>

                  <legend id='bAUv5'><style id='bAUv5'><dir id='bAUv5'><q id='bAUv5'></q></dir></style></legend>
                  1. <i id='bAUv5'><tr id='bAUv5'><dt id='bAUv5'><q id='bAUv5'><span id='bAUv5'><b id='bAUv5'><form id='bAUv5'><ins id='bAUv5'></ins><ul id='bAUv5'></ul><sub id='bAUv5'></sub></form><legend id='bAUv5'></legend><bdo id='bAUv5'><pre id='bAUv5'><center id='bAUv5'></center></pre></bdo></b><th id='bAUv5'></th></span></q></dt></tr></i><div id='bAUv5'><tfoot id='bAUv5'></tfoot><dl id='bAUv5'><fieldset id='bAUv5'></fieldset></dl></div>

                  2. <tfoot id='bAUv5'></tfoot>