jQuery跨域AJAX请求失败,XMLHttpRequest无法加载错误

时间:2013-09-13 13:03:58

标签: jquery ajax cross-domain

我认为我这样做是正确的,但我在Chrome的JavaScript控制台中收到以下错误:

XMLHttpRequest cannot load https://www.google.com/ig/calculator?hl=en&q=1USD=?JPY. 
Origin  is not allowed by Access-Control-Allow-Origin. 

我尝试通过JQuery加载结果的任何方式都会引发此错误。

$.ajax({
    type: 'GET',
    url: 'https://www.google.com/ig/calculator?hl=en&q=1USD=?JPY',
    crossDomain: true
})
.fail(function() { alert('error'); })
.success(function(data) { alert(data); })
;
$.get('https://www.google.com/ig/calculator?hl=en&q=1USD=?JPY', function(data) {
    alert(data);
});
$("#test").load('https://www.google.com/ig/calculator?hl=en&q=1USD=?JPY', function(data) {
    alert(data);
});

即使将crossDomain指定为true,AJAX调用仍会失败。

知道为什么或有更好的方法来检索结果?

感谢。

1 个答案:

答案 0 :(得分:1)

您最好的办法是在自己的网络服务器上创建一个REST / JSON服务,该服务只返回Google API的远程结果。

这样可以避免任何跨域问题,并且您可以更好地控制API的未来更改(例如,您可以重新格式化内容以适合您自己的恶意用途:)。