当我尝试在fetch
中使用URLSearchParams发布正文数据时,它可以在Chrome v72和Edge v40中使用,但不能在IE11(带有polyfills)上使用。
在IE11上:我收到此错误:
错误:不支持的BodyInit类型
我正在为Edge / IE / etc浏览器使用以下polyfill:
url-search-params-polyfill:“ 5.0.0”(JavaScript URLSearchParams
的简单polyfill)
const bodyData = new URLSearchParams() Object.keys(configJson).map(key => { bodyData.append(encodeURIComponent(key), encodeURIComponent(configJson [key])) })
const opts = { 方法:“ POST”, 正文:bodyData, 标头:{ “内容类型”:“ application / x-www-form-urlencoded; charset = UTF-8” } }
fetch(endPointUrl,opts)
答案 0 :(得分:0)
您可以在下面使用
以您的请求正文为例
{..., body : objToBodyObj(obj) ..}
下面是功能
function objToBodyObj(obj) {
var str = "";
for (var key in obj) {
if (str != "") {
str += "&";
}
str += key + "=" + encodeURIComponent(obj[key]);
}
return str;
}