如何修复“将请求的模式设置为'no-cors'”错误?

Posted

技术标签:

【中文标题】如何修复“将请求的模式设置为\'no-cors\'”错误?【英文标题】:How to fix the "set the request's mode to 'no-cors'" error?如何修复“将请求的模式设置为'no-cors'”错误? 【发布时间】:2019-06-15 12:50:06 【问题描述】:

我目前正在使用 yahoo weather api 来获取天气数据。我得到以下错误。请帮忙。

从源“http://localhost:3000”获取“https://weather-ydn-yql.media.yahoo.com/forecastrss?location=sunnyvale,ca&format=json”的访问权限已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头出现在请求的资源上。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我尝试过 google,但没有一个解决方案适合我

【问题讨论】:

可能的答案 - ***.com/a/43268098/2627022 在您的网址前添加代理 ='api.codetabs.com/v1/proxy?quest=' 【参考方案1】:

您可以像这样将请求模式设置为“no-cors”:

fetch(url, 
    mode: "no-cors",
    ...
)

但是,正如 goto1 在下面的评论中所描述的,它通常不是您正在寻找的解决方案(请参阅他关于如何正确使用 CORS 的评论) .

【讨论】:

如果您收到CORS 问题这不是解决方案。如果API 端点是您可以控制的,那么您必须在那里修复那些CORS 问题。如果API 端点不是您可以控制的,那么您必须通过启用了CORS 的服务器来proxy 您的请求。 对 fetch api 的 cors 行为和设置的描述:javascript.info/fetch-crossorigin【参考方案2】:

请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源

所以,首先您必须从浏览器更改您的 CORS: 这是那个链接,下载它会自己安装。

访问:https://chrome.google.com/webstore/detail/moesif-origin-cors-change/digfbfaphojjndkpccljibejjbppifbc?hl=en-US

名称:Moesif Origin & CORS Changer

注意:确保在您运行页面时打开它。

【讨论】:

以上是关于如何修复“将请求的模式设置为'no-cors'”错误?的主要内容,如果未能解决你的问题,请参考以下文章

无法在我的快递应用中解决 CORS 政策

CORS:没有'Access-Control-Allow-Origin'标题

JS常见报错与修复

如何修复由 Caused by: java.lang.NumberFormatException: For input string: "pets" 引起的 Asynctask 错

如何解决windows10系统中安装vs2013报错问题

CentOS启动时报错修复