我正嘗試使用YQL爲來自wordpress博客的數據執行跨域請求。這是我第一次嘗試代碼:
var g = {data:""}
function getWP() {
var targeturl = "http://www.mysite.com";
var url = "http://query.yahooapis.com/v1/public/yql?"+
"q=select%20*%20from%20html%20where%20url%3D%22"+
encodeURIComponent(targeturl)+
"%22&format=xml'&callback=?";
var successfunc = function(data) {
if(data.results[0]){
g.data = data.results[o];
} else {
var errormsg = '<p>Error: could not load the page.</p>';
alert(errormsg);
}
}
$.ajax({
url: url,
success: successfunc
});
}
當我嘗試這樣做AJAX調用,data
對象返回是一個空字符串。但是,當我這樣做:
$.getJSON(url, successfunc);
返回正確的JSON對象。這兩個電話有什麼區別?更重要的是,爲什麼只有第二個工作?
由於它是跨域的,數據類型應該是jsonp,如下面的fahad所述。另外,我會花時間完全寫出一個簡單的成功函數,以防一個總新手在後期發生錯誤。否則,很好的答案和+1。 – gibberish