2012-10-03 132 views
4

我的代码是这样使用REST API

$.ajax({ 
    cache: false, 
    url: <Web Service URL>, 
    data: "{}", 
    type: 'GET', 
    crossDomain: true, 
    dataType: 'json', 
    success: function() { alert("Success"); }, 
    error: function() { alert('Failed!'); }, 
}); 

我试图使用jQuery访问来自客户端的REST API,但它给错误,如 XMLHttpRequest cannot load <Web Service URL>. Origin null is not allowed by Access-Control-Allow-Origin.

所以有人可以帮我解决这个错误..?

+1

试试'JSONP'。 –

+0

嗨Pushpesh,我也尝试过JSONP,但它给出了相同的错误 –

+0

你可以给我的网址,以便我可以试试看。您上面给出的网址无效,所以我无法验证。 –

回答

1

Ajax请求必须是服务于网页的服务器。

你可以做的是在你的网站上有一个代理服务器,用于将请求从浏览器转发到你希望打电话的网站。

http://your.site.here/proxy/bentley/LearnService/Learnservice.svc/REST/ ...

所以,如果你碰巧使用Apache例如,你可以通过添加类似下面的httpd.conf配置反向代理:

ProxyPassReverse /proxy/bentley http://khara37793punl.bentley.com/ 
2

谷歌之后,我开始知道,用户必须在phonegap/hybrid应用程序的config.xml中添加“”。