Get request url from xhr object

前端 未结 6 1683
闹比i
闹比i 2020-12-03 04:31

Is there any way to extract the request url from an xhr object? I can see the url in firebug via the channel property but you cant query this using javascript.

6条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-03 05:02

    I hope I'm understanding your problem correctly.

    It should be fairly simple to wrap your XHR objects with your own object to allow for this kind of functionality.

    Below is an overly simplified example:

    // Assumption: GetXHR() returns a new XHR object, cross browser.
    
    function HTTPGet(url, onStartCb, onCompleteCb)
    {
      var xhr = GetXHR();
      // Construct your own xhr object that contains the url and the xhr object itself.
      var myXhr = { xhr: xhr, url: url };
    
      xhr.onreadystatechange = function()
      {
         if (xhr.readyState == 4 && xhr.status == 200)
         {
            onCompleteCb(myXhr);
         }
      };
    
      xhr.open("GET", url);
      onStartCb(myXhr);
      xhr.send(null);
    }
    

    I haven't tested this extensively, but it should work and with some modifications (error handling, passing parameters, etc) you should probably be able to turn this example into a fully functional solution.

提交回复
热议问题