【发布时间】:2018-02-28 16:31:28
【问题描述】:
我尝试从前端网站 (localhost:8888) 向 golang 后端 (localhost:8000) 发送一个 post api 请求。我收到下面列出的错误。我查看了stackoverflow,问题似乎是跨源请求和预检请求处理。我添加了如下所示的标题,但问题仍然存在。我希望你们能帮助我:)
Axios 错误:
OPTIONS http://localhost:8000/api/heimdall/signup 404 (Not Found)
Failed to load http://localhost:8000/api/heimdall/signup: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8888' is therefore not allowed access. The response had HTTP status code 404.
Mux CORS 处理程序
methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
originsOk := handlers.AllowedOrigins([]string{"*"})
headersOk := handlers.AllowedHeaders([]string{"Accept", "Content-Type", "Content-Length", "Accept-Encoding", "X-CSRF-Token", "Authorization"})
log.Fatal(http.ListenAndServe(":8000", handlers.CORS(methodsOk, originsOk, headersOk)(r)))
Axois 代码:
'use strict';
var axios = require('axios');
function Signup(email, password) {
var apiURL = 'http://localhost:8000/api/heimdall/signup';
return new Promise((resolve, reject) => {
axios.post(apiURL, {
email: email,
password: password
})
.then(respone => {
console.log('Promise Signup response:', respone);
resolve(respone);
}, error => {
console.log('Promise Signup error:', error);
reject(error);
});
});
}
export {
Signup
};
【问题讨论】:
-
您可以尝试在允许的标题中添加
Access-Control-Allow-Origin吗?看看它是否会起作用
标签: javascript go axios preflight