如何将模式:“no-cors”添加到 XMLHttpRequest?

раз*_*ова 4 javascript xmlhttprequest cors

我是 JavaScript 新手。如何在 JavaScript 中添加 mode:no-cors到 myXMLHttpRequest中?

例如,对于这段代码:

var xhr = new XMLHttpRequest();
xhr.open("POST", yourUrl, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(JSON.stringify({
    value: value
}));
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 6

XMLHttpRequest不支持no-cors模式,仅fetch支持。

但是,您正在尝试设置其中Content-Type需要CORS 许可的application/json模式,因此您无论如何都无法使用模式。no-cors

如果您使用fetch并设置了no-cors模式,那么设置的指令Content-Type将被忽略。

相反,配置yourUrl为使用 CORS 授予权限,以使用 JSON 发出请求Content-Type

  • @Bravo - 我相信基本逻辑是,使用经典的 HTML 表单,您可以发送 `enctype` 支持的任何内容类型。编写 Web API 的人可能会认为,如果内容类型不是其中之一,那么它就不会受到跨域攻击。所以现在,如果您使用 Ajax 发出请求,并且想要设置 `enctype` 不支持的内容类型,那么您需要 CORS 的许可。使用“no-cors”模式基本上可以使需要 CORS 许可的所有操作都会无提示且无错误地失败 - 包括将内容类型从默认(纯文本)更改为 JSON。 (2认同)