2010-09-01 131 views
0

下面的JSON功能不返回任何東西......的getJSON不返回任何東西

$.getJSON(formUrl, function(data) { 
       alert(data) 
       $('.response').html('<p>' + data.title + '</p>' 
       + '<p>' + data.description + '</p>'); 
      }); 

的formUrl是正確的,在

{"title":"Smashing Magazine","description":"Smashing Magazine is focused on design and web-development. We deliver useful information, latest trends and techniques, useful ideas, innovative approaches and tools."} 

形式返回數據有人能指出什麼我」米做錯了嗎?我提醒數據和它的空...

謝謝!

+0

PHP與此有什麼關係?我現在更改了標籤。 – shamittomar 2010-09-01 12:18:56

+0

不是標籤警察,但如果你的代碼是基於JQuery的,那麼你應該把它標記爲禮貌。 – donohoe 2010-09-01 12:31:55

回答

3

您是否打電話給$.getJSON使用跨域URL(即從本地主機到其他地方)?除非使用JSONP數據類型,否則這將不起作用。

+0

它在我的本地主機上,但我指的是絕對.. 即。 formUrl =「http:// localhost:8888/NewMT/tools/fetch.php?url =」+ $(this).val, 會影響它嗎? – Fearghal 2010-09-01 12:25:39

+1

我相信交叉端口訪問也不起作用。你是否正在從localhost提供你的頁面:8888? – sewa 2010-09-01 12:34:57

+0

是.........;( – Fearghal 2010-09-01 12:36:08

0

由於它不是same origin,因此您需要將Access-Control標頭添加到JSON響應中。

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET'); 
0

不要將字符串分成兩行,否則會導致錯誤,並可能導致Javascript無法運行。

嘗試這樣的事:(注意我沒怎麼在兩行打破裏面的html()的內容)

$.getJSON(formUrl, function(data) { 
       alert(data); 
       $('.response').html('<p>' + data.title + '</p>' + '<p>' + data.description + '</p>'); 
      }); 
0

嘗試配置您的服務器通過的contentType application/json

提供 fetch.php頁面

也只是爲了測試,你可以嘗試把你的JSON放入一個.../fetch.js文件中,並用$.getJSON來調用它。 它應該工作,因爲.js文件在大多數服務器上默認爲application/javascript