Reactjs 设置了头文件和axios,但为什么会发生cros错误? 前提/你想要达到的目标 React x Redux(端口:3000) Go(端口:8080) 我在做水疗

Reactjs 设置了头文件和axios,但为什么会发生cros错误? 前提/你想要达到的目标 React x Redux(端口:3000) Go(端口:8080) 我在做水疗,reactjs,go,redux,axios,Reactjs,Go,Redux,Axios,我在点击GoAPI时遇到了CROS错误。 我已经多次遇到这个问题,每次我认为它已经解决了,我就会遇到一个新的API 我应该做一些基本的设置,但是我有麻烦了,因为我不知道是什么引起的。 如果你能帮助我们,我们将不胜感激 问题/错误消息 当我点击登录API(post)时遇到了这个问题。 然而,当我多次遇到这个问题时,我在api和axios端的头上设置了CRO,并且 另一个getapi避免了这个错误 此外,当您使用postman访问api时,它将成为标题 我们还确认,Go中设置的标题(如Allow

我在点击GoAPI时遇到了CROS错误。 我已经多次遇到这个问题,每次我认为它已经解决了,我就会遇到一个新的API

我应该做一些基本的设置,但是我有麻烦了,因为我不知道是什么引起的。 如果你能帮助我们,我们将不胜感激

问题/错误消息 当我点击登录API(post)时遇到了这个问题。 然而,当我多次遇到这个问题时,我在api和axios端的头上设置了CRO,并且 另一个getapi避免了这个错误

此外,当您使用postman访问api时,它将成为标题 我们还确认,Go中设置的标题(如Allow Origin)没有任何问题

适用的源代码 Go中的标题设置

w.Header()。设置(“内容类型”、“应用程序/json”)
w、 标题()。设置(“访问控制允许原点”http://localhost:3000")
w、 标题()。设置(“访问控制允许凭据”、“true”)
反应axios设置

axios.defaults.baseURL ='http://localhost:8080';
axios.defaults.headers.post ['Content-Type'] ='application/json';
过帐代码有错误

export const signIn=(电子邮件、密码)=>{
返回异步(调度)=>{
试一试{
const response=wait axios.post(“/login”{
电邮:电邮,,
密码:密码,
});
const data=response.data;
派遣(
符号({
伊西涅丁:是的,
})
);
}捕获(错误){
console.log(错误);
}
};
};
代码命中成功的getapi

useffect(()=>{
异步函数fetchTickers(){
试一试{
const response=wait axios.get(`/ticker?Symbol=^skew`);
const data=response.data;
setChartAry([…chartAry,[…data.daily]]);
}捕获(错误){
console.log(错误);
setChartAry([]);
}
}
fetchTickers();
}, []);
我试过的 我尝试了stackoverflow等的所有解决方案。此外,考虑到浏览器本身可能出现问题,我们还清除了缓存


这是get和post的axios之间的区别吗?我应该如何调试它呢?

不久前我遇到了这个问题,但我使用了Express作为后端,谁知道这也可以解决您的问题

尝试将其添加到axios设置
axios.defaults.withCredentials=true

您还需要允许方法的选项


本文可能会帮助您解决后端的CORS问题:

该方法已在gorilla/mux中得到验证

   - r.HandleFunc("/login", app.loginHandler).Methods("POST")
   + r.HandleFunc("/login", app.loginHandler).Methods("POST", "OPTIONS")
我们还必须处理飞行前的问题

if r.Method == "OPTIONS" {
    w.Header().Set("Content-Type", "application/json")
    w.Header().Set("Access-Control-Allow-Origin", "http://localhost:3000")
    w.Header().Set("Access-Control-Allow-Credentials", "true")
    w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
    w.WriteHeader(http.StatusOK)
        return
}


谢谢你的建议,我尝试了所有的方法,但都无法解决。
if r.Method == "OPTIONS" {
    w.Header().Set("Content-Type", "application/json")
    w.Header().Set("Access-Control-Allow-Origin", "http://localhost:3000")
    w.Header().Set("Access-Control-Allow-Credentials", "true")
    w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
    w.WriteHeader(http.StatusOK)
        return
}