feign 传递对象的时候,出现OPTIONS先请求,导致跨域403

来源:12-2 rancher安装

cloverxixi

2020-01-09

师兄你好,我现在遇到一个问题,情况是这样的
1.前后端分离,前端使用nginx反向代理到zuul网关的端口上
2.后端两个serviceA ,serviceB,A,与B 进行服务通信
3.A作为被调用发,B作为调用方
4.A的后端接口如下:
@RequestMapping(value = “/pojotest”, method =RequestMethod.POST, produces = “application/json;charset=UTF-8”)
public String pojotest(@RequestBody ResultDto resultDto){
log.info(JsonUtil.toJsonNoSerialize(resultDto));
return ResultDto.SUCCESS(“hello world”);
}
5.B调用可以正常调用,但是A的接口这样写了之后,ajax请求
$.ajax({
//接口地址
url: _url,
type: ‘POST’,
contentType : ‘application/json’,
data: params,
dataType: “JSON”,
success: function (data) {
console.log(data)
},
error: function (returndata) {
toastr.error(returndata);
}
});
的时候,会出现先请求一个OPTIONS,这个时候出现了跨域错误,请问这个怎么解决呢

写回答

1回答

廖师兄

2020-01-09

前端的地址和请求的地址是什么呢?前端的请求是到nginx,不应该出现跨域。

0
1
cloverxixi
已经解决了,contentType如果是application/json的话,会在post请求之前先发送一个前置的options请求,这个options会出现跨域,我后来是在nginx里面把options请求拦截了,如果是options,则返回200
2020-01-17
共1条回复

SpringCloud Finchley(M2+RELEASE+SR2)微服务实战

SpringCloud组件实现微服务,【已升级Finchley.Release】

5668 学习 · 2489 问题

查看课程