【问题标题】:AngularJS & Cross-Origin Request Blocked [closed]AngularJS和跨域请求被阻止[关闭]
【发布时间】:2014-11-10 06:53:43
【问题描述】:

有什么帮助吗? 当我尝试从服务器获取数据时显示此错误。 我的 Angular 应用程序在我的本地计算机中,数据库在我通过互联网连接到它的服务器中。

错误:跨域请求被阻止:同源策略不允许读取位于http://XXXXXXXX.com/XXXXx 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。

解决这个错误的步骤是什么??

【问题讨论】:

    标签: javascript angularjs firefox restful-authentication


    【解决方案1】:

    这与 Angular JS 无关,您的浏览器(可能是 chrome)正在阻止跨源请求,您应该配置您的 Web 服务器以将您发送给它的本地路径重写为您的服务器路径。 示例 nginx 配置:

    location /local_path {
        proxy_pass        server_path
    
        }
    

    在你的例子中:

    location /homework {
        proxy_pass         http://XXXXXXXXXXXXX.com/XXXXXXX
    
        }
    

    【讨论】:

      【解决方案2】:

      这是因为在 chrome 等浏览器中,当您从 domain1.com 向 domain2.com 发起请求时,chrome 会自动创建一个 OPTIONS 请求来检查服务器是否允许 domain1.com 向 domain2.com 发送 HTTP 请求与否。

      根据您的后端技术,您必须在您的服务器中启用 CORS(跨域资源共享)并将其配置为允许 domain1.com 访问它。

      【讨论】:

        【解决方案3】:

        就像 Hassene 所说的,这不是 AngularJS 造成的。相反,浏览器会阻止您的 JavaScript 应用程序跨域边界发出请求。

        要解决此问题,您应该在服务器响应中启用 Access-Control-Allow-Origin 标头。这比听起来容易得多,并且记录在许多不同的 Web 服务器here

        【讨论】:

          【解决方案4】:

          如果您想在开发过程中快速修复,请使用插件在浏览器中启用 CORS:plugin for Chrome

          详细了解 CORS here。然后阅读接受的答案here

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-12-14
            • 2021-06-26
            • 2014-10-13
            • 2017-01-09
            • 2019-11-04
            • 2017-02-06
            相关资源
            最近更新 更多