Spring 仅针对应用程序/json的飞行前响应

Spring 仅针对应用程序/json的飞行前响应,spring,cors,angular5,content-type,preflight,Spring,Cors,Angular5,Content Type,Preflight,我一直在尝试从angular 5向我的spring mvc后端发送post请求。然而,我得到了飞行前的响应是inavlid(重定向)错误消息。4天以来,我一直在四处寻找解决方案,但没有成功。我尝试了所有设置内容类型标题的建议。在这样做的同时,我观察到了一件不同寻常的事情。只有当我将内容类型头设置为application/json时,才会发生飞行前错误。如果我将标题设置为text/plain,飞行前错误消失,但显示415不支持的媒体类型错误。我一直在挖东西寻求帮助。非常感谢您提供的任何帮助或建议。

我一直在尝试从angular 5向我的spring mvc后端发送post请求。然而,我得到了飞行前的响应是inavlid(重定向)错误消息。4天以来,我一直在四处寻找解决方案,但没有成功。我尝试了所有设置内容类型标题的建议。在这样做的同时,我观察到了一件不同寻常的事情。只有当我将内容类型头设置为application/json时,才会发生飞行前错误。如果我将标题设置为text/plain,飞行前错误消失,但显示415不支持的媒体类型错误。我一直在挖东西寻求帮助。非常感谢您提供的任何帮助或建议。

使用chrome,查看开发者工具-控制台,并查看确切的错误

您的服务未正确设置选项请求的飞行前响应

如何验证我的服务是否已准备就绪
  • 使用PostMan或RestClient,在没有其他内容(没有身份验证,没有任何内容)的情况下发出选项请求
  • 查找步骤1中选项请求的响应标头
  • 响应头可能如下所示
  • 访问控制允许来源: 访问控制允许方法:GET、POST(或您希望允许的任何方法) 访问控制允许标题:内容类型在控制器上添加交叉源注释,如果有多个控制器,则在所有控制器上添加

    @CrossOrigin(origins = "*")
    @RestController
    

    如果我将内容类型更改为文本/纯文本,则可以避免飞行前错误,但我必须处理415种不支持的媒体类型。您是服务所有者吗?如果没有,您需要与他们联系您是否能够在选项响应中看到允许标头上的内容类型?我尝试通过Postman执行post请求,方法是将授权标头设置为NTLM,并随请求一起传递给对象,然后返回状态为200 ok。所以,我想是授权造成了问题。现在我只是想知道如何通过angular添加与NTLM相同的授权头,并将其传递到后端以成功完成post请求