我想使用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);
}
});
};
感谢
答案 0 :(得分:0)
您可以在服务器上创建本地代理以避免跨域请求。那你基本上是创建一个执行cURL(php)或HttpRequest(c#etc)的页面,然后渲染cURL / HttpRequest的内容作为它的响应。与javascript(客户端代码)不同,服务器通常不仅限于发出同域请求。