我有一个API,该API向另一个API发出请求以进行登录。
这是我的REST API(Spring Boot)中的CorsConfiguration类
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/v1/api/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*");
}
}
在端点(/ v1 / api / login)中,我在响应中设置了“ Access-Control-Allow-Origin”。
@PostMapping
public ResponseEntity doLogin(@RequestBody String data, @RequestHeader("Content-Type") String content) throws IOException {
if (content.equals("application/json;charset=UTF-8") && !data.isEmpty()) {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("Access-Control-Allow-Origin","*");
Login login = new ObjectMapper().readValue(data, Login.class);
if (login.getEmail() != null && login.getPassword() != null) {
ResponseEntity res = loginService.auth(login);
return new ResponseEntity(res.getBody(), responseHeaders, res.getStatusCode());
}
}
return new ResponseEntity(HttpStatus.BAD_REQUEST);
}
但是我的前端(Vue.JS)仍然出现此错误:
从“ http://localhost:3000/v1/api/login”访问XMLHttpRequest 原产地“ http://localhost:8080”已被CORS政策禁止: “ Access-Control-Allow-Origin”标头包含多个值“ *,*”, 但只允许一个。
当我将另一个API的响应打印到我的数据库时,我看到:
<200,“ access_token”:“ e701bc80b64ab41cfba3efab1c516e3bcc61716b”,“ expires_in”:1200,“ token_type”:“ Bearer”,“ scope”:“”,“ refresh_token”:“ f3549bacde5c10fe76b97a91Date”, 2019年6月24日16:45:52 GMT“,服务器:” Apache / 2.4.18(Ubuntu)“,缓存控制:” no-store,private“,语法:” no-cache“,X-Robots-Tag: “ noindex”,访问控制允许来源:“ *”,访问控制允许方法:“ POST,GET,PUT,PATCH,DELETE,OPTIONS”,访问控制允许标题:“授权,内容-类型,接受”,访问控制权限凭证:“ true”,内容长度:“ 169”,保持活动状态:“超时= 5,最大= 100”,连接:“保持活动状态”,内容-类型:“ application / json”]>
我对前端的回应:
<200 OK OK,{“ access_token”:“ e701bc80b64ab41cfba3efab1c516e3bcc61716b”,“ expires_in”:1200,“ token_type”:“ Bearer”,“ scope”:“”,“ refresh_token”:“ f3549bacde5c10cf76b97a91 Control-Allow-Origin:“ *”]>
任何帮助都会有用!