Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xmlhttprequest 服务工作者:获取请求时检索xhr正文_Xmlhttprequest_Fetch_Send_Service Worker - Fatal编程技术网

Xmlhttprequest 服务工作者:获取请求时检索xhr正文

Xmlhttprequest 服务工作者:获取请求时检索xhr正文,xmlhttprequest,fetch,send,service-worker,Xmlhttprequest,Fetch,Send,Service Worker,如何检索从xhr(XMLHttpRequest)发送(body)调用发送的正文?。 My xhr变量是一个XMLHttpRequest,可以使用POST方法调用内部url(例如:/path/api) 另一方面,我实现了一个服务工作者,并创建了处理程序来捕获所有获取请求 self.addEventListener('fetch', function(event, body) { event.respondWith( //Check content of event.request.body t

如何检索从xhr(XMLHttpRequest)发送(body)调用发送的正文?。 My xhr变量是一个XMLHttpRequest,可以使用POST方法调用内部url(例如:/path/api)

另一方面,我实现了一个服务工作者,并创建了处理程序来捕获所有获取请求

self.addEventListener('fetch', function(event, body) 
{ 
event.respondWith( //Check content of event.request.body to run the right action );
}
我可以以event.request.url的形式检索event.request的一些属性,但无法找到检索原始xhr正文(即“a=1”)的方法

有趣的是,当服务人员处理此请求并调用网络以获取结果时

return fetch(event.request);
服务器可以访问主体数据

下面是我在SW fetch方法中收到的请求对象的摘录

Request {method: "POST", url: "http://localhost/services", headers: Headers
, referrer: "http://localhost/m1/", referrerPolicy: "no-referrer-when-downgrade"…}

bodyUsed:false
credentials:"include"
headers:Headers
  __proto__:Headers
integrity:""
method:"POST"
mode:"cors"
redirect:"follow"
referrer:"http://localhost/path/"
referrerPolicy:"no-referrer-when-downgrade"
url:"http://localhost/path/api"
关于如何在Service Worker fetch()捕获中检索发送请求的内容/正文,有什么建议吗


谢谢

这对大多数人来说可能是显而易见的,但我想在回复中添加一些注释,以防将来有人遇到与我相同的情况

有几种方法可以从请求中检索正文,具体取决于正文的发送方式

event.request.arrayBuffer()
event.request.blob()
event.request.json()
event.request.text()
event.request.formData()
这些方法中的任何一个都将返回一个承诺,其中包括正文内容。瞧

我还需要感谢Nikhil Marathe()帮助我理解这一切是如何运作的

event.request.arrayBuffer()
event.request.blob()
event.request.json()
event.request.text()
event.request.formData()