如何让jQuery从webservice中提取xml

时间:2011-09-25 16:49:54

标签: jquery ajax web-services

我一直试图从

获取数据

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服务中提取货币汇率而不会抛出错误?

1 个答案:

答案 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但这仅在远程域支持时才有效。如果不是,则需要服务器端桥。