我一直试图从
获取数据http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=USD&ToCurrency=GBP
我希望能够使用jQuery来提取数据,我已经尝试了$ .ajax甚至:
$.get('http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=USD&ToCurrency=GBP', function(data) {
console.log(data);
});
它在我的浏览器(firefox)中作为url工作正常,但在jQuery中失败。如何使用jQuery从Web服务中提取货币汇率而不会抛出错误?
答案 0 :(得分:4)
由于浏览器内置same origin policy restriction,您无法将AJAX请求发送到不同于托管包含此javascript的页面的域(我怀疑不是http://www.webservicex.net
)。要解决此问题,您可以在域上编写一个服务器端脚本,作为域与远程域之间的桥梁,然后向脚本发送AJAX请求:
$.get('/myscript?FromCurrency=USD&ToCurrency=GBP', function(data) {
console.log(data);
});
服务器端脚本将简单地获取两个查询字符串参数,并将它们作为HTTP请求发送到远程域并返回结果。实现此脚本的方式当然取决于您使用的服务器端语言。
另一种方法是使用JSONP但这仅在远程域支持时才有效。如果不是,则需要服务器端桥。