对预检的响应仅在application / json中发生

时间:2018-09-04 15:54:25

标签: spring cors angular5 content-type preflight

我一直在尝试从angular 5到我的spring mvc后端执行发布请求。但是,我收到预检响应是inavlid(redirect)错误消息。自4天以来,我一直在寻找解决方案,但没有成功。我尝试了所有设置内容类型标头的建议。在这样做的同时,我观察到一件不寻常的事情。仅当我将content-type标头设置为application / json时,才会发生预检错误。如果我将标题设置为text / plain,则预检错误消失了,但显示415不支持的媒体类型错误。我一直在认真地寻找东西以寻求帮助。任何帮助或建议,我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

使用Chrome浏览器,查看开发人员工具-控制台,并查看确切的错误。

您的服务没有为您的OPTIONS请求正确设置飞行前响应。

我如何验证我的服务是否已准备就绪CORS

  1. 使用PostMan或RestClient并以其他方式(没有身份验证,没有其他内容)发出OPTIONS请求
  2. 从步骤1查找OPTIONS请求的响应标头。
  3. 响应头可能看起来像这样

访问控制允许来源:http://exampledomain.comg

Access-Control-Allow-Methods:GET,POST(或您要允许的任何方法)

访问控制允许标题:内容类型

答案 1 :(得分:0)

在控制器上添加crossOrigin注释,如果您有多个控制器,则在所有控制器上添加

@CrossOrigin(origins = "*")
@RestController