mad*_*han 7 javascript browser cross-domain navigator
我想在客户的网站中使用navigator.sendBeacon。但是它使用的是POST方法,并且请求未到达服务器,因为请求url的域不同。我尝试了使用sendBeacon()的不同方法,但是所有方法都使用POST方法。
var data = new FormData();
navigator.sendBeacon(myurl,data);
navigator.sendBeacon(myurl,“”);
navigator.sendBeacon(myurl);
有没有一种方法可以使用sendBeacon()进行GET调用?还是有任何方法可以在跨域环境中使用sendBeacon()。
sendBeacon() 方法不提供自定义请求方法的能力。需要对此类请求进行非默认设置的应用程序应使用 FETCH API,并将 keep-alive 标志设置为 true。
根据本文档,这里有一个示例,说明如何使用 Fetch API 复制以下行为sendBeacon:
fetch(url, {
method: ...,
body: ...,
headers: ...,
credentials: 'include',
mode: 'no-cors',
keep-alive: true,
})
Run Code Online (Sandbox Code Playgroud)
小智 0
浏览器如何解释 sendBeacon() 似乎还没有完全标准化;有些默认通过 $_GET 发送,有些默认通过 $_POST 发送。他们应该使用第三个参数让开发人员使用 GET 或 POST 会更清楚
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |