AngularJS和跨域请求被阻止[关闭]
Posted
技术标签:
【中文标题】AngularJS和跨域请求被阻止[关闭]【英文标题】:AngularJS & Cross-Origin Request Blocked [closed] 【发布时间】:2014-11-10 06:53:43 【问题描述】:有什么帮助吗? 当我尝试从服务器获取数据时显示此错误。 我的 Angular 应用程序在我的本地计算机中,数据库在我通过互联网连接到它的服务器中。
错误:跨域请求被阻止:同源策略不允许读取位于http://XXXXXXXX.com/XXXXx 的远程资源。这可以通过将资源移动到同一域或启用 CORS 来解决。
解决这个错误的步骤是什么??
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于AngularJS和跨域请求被阻止[关闭]的主要内容,如果未能解决你的问题,请参考以下文章