我试图将我的数据从heroku应用程序提取到Redux,但我认为我遇到了CORS问题。我一直在玩"标题"有一段时间,仍然无法弄清楚。
这是确切的错误: "无法加载https://name-app.herokuapp.com/users:对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。如果不透明的回复符合您的需求,请将请求的模式设置为“无人”状态。在禁用CORS的情况下获取资源。"
这是我的代码:
export function fetchMicros() {
return dispatch => {
const url = "https://name-app.herokuapp.com/users";
return fetch(url, {
method: 'GET',
mode: 'cors',
headers: { 'Content-Type': 'text' },
})
.then(handleErrors)
.then(res => res.json())
.then(micros => {
dispatch(fetchVitamins(micros));
}
)};
};
答案 0 :(得分:0)
如果您不需要进行任何身份验证,也不需要传递任何数据,则可以执行no-cors
请求(有关mdn page的更多信息)。
fetch(url, {
mode: 'no-cors',
})
如果您执行需要Cookie或某种身份验证,那么您需要让服务器接受您的域并请求预检响应方法。
如果您无权更改服务器上的内容,您可以创建一个nodejs服务器来处理您的呼叫,绕过任何cors检查(只有浏览器关心cors,服务器不关心)