我似乎无法弄清楚这个错误" No' Access-Control-Allow-Origin'报头&#34 ;.
我有一个在localhost上运行的Vue前端:8080和spring backend在locahost上生成JWT令牌:8082
在尝试将凭据发布到我的/ signin时,我一直都会遇到此错误。我在Spring控制器上尝试了@CrossOrigin("http://localhost:8080")
,在SecurityConfig中尝试了CorsConfigurationSource
全局bean。
以下是使用axios的登录帖子的Vue代码:
login(context, creds, redirect) {
var headers = {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
}
axios.post(LOGIN_URL, '{"username": "name", "password":
"pass"}', headers)
.then(function(response){
console.log(response)
this.user.authenticated = true
}).catch(function (error) {
console.log(error);
});
},
我的登录页面需要{"用户名":"名称","密码":"传递"},我有一个登录信息在登录时传递用户名和密码的页面,但正在消除可能的原因,因此我将其硬编码以便在上面的代码中进行测试。
最后我尝试过使用chrome CORS插件来消除错误,但仍然返回403.一切都在postman中完美。
答案 0 :(得分:0)
Foundout @CrossOrigin(origins = "*", allowedHeaders = "*")
只适用于我的api,这很奇怪。但是通过添加这个全局方法:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:8080");
}
};
}
之前的问题是,最后没有.allowedOrigins它不会起作用。