从SAPUI5访问Northwind OData服务时Access-Control-Allow-Origin错误?

时间:2016-05-26 16:01:31

标签: google-chrome cors odata sapui5

我在在线编辑器中创建了一个示例SAPUI5应用程序

Check this link to view my code

I am getting this below error -

> XMLHttpRequest cannot load
> http://services.odata.org/V2/Northwind/Northwind.svc/Products?$format=json.
> No 'Access-Control-Allow-Origin' header is present on the requested
> resource.

有人可以帮我解决这个问题 - 我知道这是CORS问题,可以通过禁用chrome中的安全性来解决。

然而 - 我不会禁用chrome的安全功能。那么,有没有其他方法(可能通过传递一些标题)来解决这个问题。

提前感谢您的帮助。

P.S。:我已经查看了这些链接 -

  

http://scn.sap.com/community/developer-center/front-end/blog/2013/06/29/solving-same-origin-policy-issue-in-different-ways

     

http://scn.sap.com/community/gateway/blog/2014/09/23/solve-cors-with-gateway-and-chrome

2 个答案:

答案 0 :(得分:1)

在您的hcp帐户的DESTINATIONS标签下添加northwind odata服务作为目的地。然后使用相对路径(即/ destination / .....)对northwind服务进行ajax调用 或者创建自己的java应用程序作为代理,允许源代码并将有效负载重新路由到正确的目标。

基本上,destination也是为sap

开箱即用的提供的代理

答案 1 :(得分:0)

如果这只是为了测试,以下解决方案应该是最简单的。

使用代理服务添加所需的标头,例如:https://github.com/Rob--W/cors-anywhere

用法非常简单,只需在OData URL之前添加代理服务的URL:

var uri = "https://cors-anywhere.herokuapp.com/https://services.odata.org/V2/Northwind/Northwind.svc/Products?$format=json";