2011-09-14 26 views
0

不要有人有任何想法,爲什麼下面的代碼失敗與雅虎API的Ajax請求不起作用?

$(document).ready(function() { 

doAjax("http://somedomain.com/page.aspx"); 
}); 

function doAjax(url) { 
    if (url.match('^http')) { 
     $.getJSON("http://query.yahooapis.com/v1/public/yql?" + 
      "q=select%20*%20from%20html%20where%20url%3D%22" + 
      encodeURIComponent(url) + 
      "%22&format=xml'&callback=?", 
    function (data) { 
     if (data.results[0]) { 

      var msg = 'success'; 
     } else { 
      var errormsg = '<p>Error: could not load the widget.</p>'; 

     } 
    } 
); 
    } 
} 

我錯過了什麼?

+0

你期望發生的? – SLaks

+0

調用此頁面http://www.somedomain.com/page.aspx(我不希望返回任何輸出)...只做請求。 – Cassini

回答

0

的YQL格式參數需要被設置爲JSON,如果你希望它返回JSON。

測試您的YQL這裏:http://developer.yahoo.com/yql/console/

確保它返回有效JSONP,那麼URL從底部複製和替代您的網址。

編輯:

我想這樣做是有一個IFrame的一種方式,

var iframe = $("<iframe src='" + yoururl + "' style='display: none;'></iframe>"); 
iframe.load(function(){ 
    alert('request sent'); 
    setTimeout(function(){ 
    iframe.remove(); 
    },10); 
}).appendTo('body'); 
+0

我不想返回任何東西只是調用該頁面。 – Cassini

+0

如果它沒有返回正確的json,則成功回調不會觸發。 –

+0

但是,完整的回調會觸發。嗯......如果你不希望返回數據,你根本不需要打YQL,因爲它與直接向url傳送jsonp請求的結果相同。 –