Google Weather XML上的跨域请求

时间:2011-10-13 06:19:19

标签: jquery cross-domain

我想使用ajax调用抓取google weather xml但是我收到以下错误:

405 Method not allowed

进行跨域调用总是很麻烦,我知道我们可以使用jsonp来做,但是api正在返回xml。

var weather= function(){

url = 'http://www.google.com/ig/api?weather=karachi';
var gurl = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=" +escape( url);


/*SERVER CALL FOR CROSS DOMAIN*/
//ServerCallRAW('http://www.google.com/crossdomain.xml', function(_dataCD){

    //console.log(_dataCD);
    ServerCallXML(url, function(_dataAPI){

        console.log(_dataAPI);
    //});
});

};


function ServerCallXML(_url,callback) {
    $.ajax
    ({
        type: "GET",
        url: _url,
        dataType: 'xml',
        //contentType: "application/json; charset=utf-8",
        contentType: "text/xml; charset=iso-8859-1",
        async: false,
        //data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'},
        success: function (result) {
            callback(result);
        }
    });
};

感谢

1 个答案:

答案 0 :(得分:0)

您可以在服务器上创建本地代理以避免跨域请求。那你基本上是创建一个执行cURL(php)或HttpRequest(c#etc)的页面,然后渲染cURL / HttpRequest的内容作为它的响应。与javascript(客户端代码)不同,服务器通常不仅限于发出同域请求。