Access-Control-Allow-Origin不允许使用AngularJS Origin http:// localhost:8080

时间:2015-01-24 00:00:49

标签: javascript php angularjs

我正在使用AngularJS开发一个Web应用程序。它包含一个依赖于驻留在另一个域上的json-rpc API的管理界面。

在我的本地环境中,如果我向API服务器发出请求(使用AngularJS),我的控制台浏览器中会出现“Access-Control-Allow-Origin”不允许出现“Origin http://localhost:8080”错误。 / p>

我已经阅读了现代浏览器的限制来阻止对另一个域的请求,但....如果没有解决方案......我是否需要创建我的Web服务(使用一种后端语言:es:PHP或Python)向API Web服务器发出请求,然后向此发出AngularJS请求?

为什么我的应用程序基础架构中间需要另一个“Web服务器”?

提前致谢。 F。

更新:我在这里阅读了关于crossdomain.xml文件:http://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html

在某种程度上,它是否可以解决我的问题?

2 个答案:

答案 0 :(得分:3)

因为服务器必须在响应ajax请求时发送启用了CORS的标头。类似的东西:

'访问控制 - 允许 - 来源',' *'

' Access-Control-Allow-Credentials',true

'访问控制 - 允许 - 方法',' POST,GET,PUT,DELETE,OPTIONS'

'访问控制 - 允许 - 标题','内容类型'

但请阅读有关CORS的更多信息以保护您的服务器。 当您发送ajax通信时,当前的Internet浏览器会检查这些标头。这是出于安全原因。

答案 1 :(得分:1)

拥有Web服务器始终是一个选项,但如果您想留在客户端,请考虑使用JSONP。在此处阅读:What is JSONP all about?