2011-07-31 23 views
1

爲什麼jQuery代碼不工作?哪裏不對 ?這個jQuery頁面不起作用,爲什麼?

預期的行爲,它警告所請求的JSON文件的內容,但它沒有。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$.ajax({ 
    type: 'GET', 
    url: 'http://api.xxxxxxxxx.com/0.1/cities/key=xxxx', 
    dataType: 'jsonp', 
    crossDomain: true, 
    success: function(data){ 
       $.each(data, function(i, el){ 
        alert(el.city) 
       }); 
     ;} 
}); 
</script> 

<title>Example</title> 
</head> 
<body></body> 
</html> 
+1

也許請求失敗,那麼你的'成功回調永遠不會被調用。或者,也許這個迴應是無效的。你有沒有檢查你的錯誤控制檯? –

+0

是的!它告訴我,對於更多的錯誤「函數cf並不總是返回一個值」 - 這是庫文件http://ajax.googleapis.com/ajax/libs/jquery/1.6的第一行。 2/jquery.min.js - 我對這一切一無所知:( – Fahd

+0

嘗試從控制檯視圖中篩選警告,以便您可以專注於實際錯誤。 –

回答

2

對正在加載的資源不是JSONP,它只是一個JSON字符串,JSONP應該是這樣的:

callback("jsonString"); 

並非所有的JSON可以加載JSONP,它必須是爲它專門設置。

JSONP

+0

所以你的意思是我編輯類型爲json NOT jsonp? – Fahd

+0

@Fahd,那麼你將無法將它作爲json跨域加載,所以只有當你在qaym.com上創建這個頁面時,才能工作。 –

+0

好吧,我會找到另一個發送API請求和處理JSON文件的解決方案 – Fahd

0

功能需要有回調

callback({json:true}); 

,如果你沒有在目標服務器控件,它不可能使JSONP請求