我正在使用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
在某种程度上,它是否可以解决我的问题?
答案 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?