【问题标题】:CORS Error with Angular角度的CORS错误
【发布时间】:2015-10-27 05:48:16
【问题描述】:

这可能是一个重复的问题,但我已经梳理了 stackoverflow 并且无法解决此问题。我们在 c# 中有一个自定义后端,在 angularjs 中有一个前端,试图发出一些 http 请求(GET、POST、PUTT、DELETE)。我们的后端在端口 33805 上运行,前端在 8080 上运行。我已经验证了实际代码没问题。 GET 调用工作正常。当我尝试拨打其他电话时,我们会遇到问题。这是 POST 请求的标头:

OPTIONS /api/users/HTTP/1.1
**Client**
    Accept: */*
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: en-US,en;q=0.8 User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrone/44.0.2403.107 Safari/537.36
**Miscellaneous**
    Access-Control-Request-Headers: accept, content-type
    Access-Control-Request-Method: POST
    Origin: http://localhost:8080
    Referer: http://localhost:8080/VM/?newPassword=NewPassword3&rePassword=NewPassword3
**Transport**
    Connection: keep-alive
    Host: localhost:33805

这是响应的标头:

HTTP/1.1 405 Method Not Allowed
**Cache**
    Cache-Control: no-cache
    Date: Tue, 04 Aug 2015 16:00:31 GMT
    Expires: -1
    Pragma: no-cache
**Entity**
    Content-Length: 76
    Content-Type: application/json; charset=utf-8
**Miscellaneous**
    Server: Microsoft-IIS/8.0
    X-AspNet-Version: 4.0.30319
    X-Powered-By: ASP.NET
    X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcZGVyaWNrM1xEb2N1bWVudHNcd29ya3NwYWNlXFZlbmRvck1hbmFnZW1lbnRTZXJ2aWNlc1xWZW5kb3JNYW5hZ2VtZW50U2VydmljZXNcYXBpXHVzZXJzXA==?=
**Security**
    Access-Control-Allow-Headers: AUTHORIZATION, X-CLIENT-ID, X-CLIENT_SECRET
    Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
    Access-Control-Allow-Origin: *

我只是想向系统添加一个用户。如果它有助于解决我在 chrome 上的控制台中遇到的错误:

XMLHttpRequest 无法加载 http://localhost:33805/api/users/。 HTTP 状态码 405 无效

我再次知道关于 CORS 和设置它有很多问题,但我觉得我已经全部关注了它们,但仍然不确定发生了什么。谢谢

【问题讨论】:

    标签: c# angularjs http cors


    【解决方案1】:

    您必须在服务器端允许它。在 IIS7 中,您可以这样做: (将此添加到您的应用程序 web.config 中)

    <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
    

    在 Tomcat 中,您可以在 web.xml 中添加 cors 过滤器。

    【讨论】:

      【解决方案2】:

      你能让你的服务器返回下面的标头并重试吗?

      Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
      

      您的服务器确实支持 CORS,因为它在标头下方返回。

      Access-Control-Allow-Origin: *
      

      看来问题出在服务器返回的 allowed-headers 上

      【讨论】:

        猜你喜欢
        • 2020-07-19
        • 2019-11-10
        • 2020-12-01
        • 2014-01-02
        • 2019-04-17
        • 2018-10-25
        • 1970-01-01
        • 2018-02-08
        • 2021-04-27
        相关资源
        最近更新 更多