【问题标题】:Response for preflight has invalid HTTP status code 500 in angular 4预检响应在角度 4 中具有无效的 HTTP 状态代码 500
【发布时间】:2018-03-04 05:48:28
【问题描述】:

我正在尝试从我的 Angular 4 Web 应用程序中使用用 c# 编写的服务。当我向服务发出 POST 请求时,我在 chrome 中收到“预检响应具有无效的 HTTP 状态代码 500”,而在服务器中,POST 请求正文值为空。但是当我通过 POSTMAN 发出相同的请求时,我得到了正确的响应。

谢谢!!

【问题讨论】:

  • 你能显示一些代码吗?
  • 也许您可以向我们展示您的 http.post 角度?如果我们可以看到您发送到控制器的数据的控制台日志,以及您的 c# 控制器操作,这也会很有帮助
  • 您是否在本地以开发模式运行它并且您是否使用 angular-cli?如果是这样,您可以使用代理绕过 chrome 阻止您进行网络调用的 cors。如果您需要,我可以发布如何执行此操作的答案。

标签: c# angular http-post preflight


【解决方案1】:

这主要与 CORS 政策有关。服务器在预检 OPTIONS 请求期间阻止了该请求。因此,请在您的服务器上启用 CORS。

这就是 POSTMAN 工作的原因:

常规网页可以使用 XMLHttpRequest 对象发送和 从远程服务器接收数据,但它们受到相同的限制 原产地政策。扩展并没有那么有限。分机可以交谈 其来源之外的远程服务器,只要它首先请求 跨域权限。

所以基本上 POSTMAN 是一个扩展,并不关心 CORS

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 2017-07-02
    • 2017-03-10
    • 1970-01-01
    • 2018-04-19
    • 2016-09-14
    • 2016-01-18
    • 2017-09-26
    • 2016-04-14
    相关资源
    最近更新 更多