📜  将请求的模式设置为“no-cors”以获取禁用 CORS 的资源 - Javascript (1)

📅  最后修改于: 2023-12-03 15:09:39.312000             🧑  作者: Mango

将请求的模式设置为 “no-cors” 以获取禁用 CORS 的资源 - Javascript

在浏览器中,当我们从一个域名请求另一个域名的资源时,浏览器默认会遵循跨域资源共享(CORS)规则来保护资源。但是在某些情况下,我们希望能够绕过 CORS 规则来获取资源,这时候就需要将请求的模式设置为 "no-cors"。

如何将请求模式设置为 “no-cors”?

在使用 fetch 请求资源时,可以通过传递一个配置对象来设置请求的模式。要将模式设置为 "no-cors",只需在配置对象中添加 "mode" 属性并将其设置为 "no-cors" 即可。

fetch('https://example.com/api/data', {
  mode: 'no-cors'
})
  .then(response => {
    // 处理响应
  })
  .catch(error => {
    // 处理错误
  });
"no-cors" 模式下的限制和注意事项
  • "no-cors" 模式只支持 GET 和 HEAD 请求方法。
  • 由于浏览器通常会拒绝从不同域中的脚本返回响应,因此在 "no-cors" 模式下,响应对象的 body 属性为 null。
  • 在 "no-cors" 模式下,只能访问一些基本的响应头。例如,无法访问用户自定义的响应头。如果需要访问这些额外的响应头,需要将响应类型设置为 "cors"。
  • 在 "no-cors" 模式下,跨域错误仍然会被抛出。如果需要避免这种情况,可以将 fetch 添加到 try-catch 语句中。
总结

在使用 Javascript 发送请求时,通过将请求的模式设置为 "no-cors",可以获取禁用 CORS 的资源。但是需要注意 "no-cors" 模式的限制和注意事项,以确保请求能够正确地被执行。