如何修复“将请求的模式设置为'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:没有'Access-Control-Allow-Origin'标题
如何修复由 Caused by: java.lang.NumberFormatException: For input string: "pets" 引起的 Asynctask 错