它們都讀取字符串。
哦不!這兩種方法非常不同。他們沒有任何共同之處。他們正在完成兩項完全不同的任務。
第一隻解析JSON字符串變成一個JavaScript對象:
var result = JSON.parse('{"foo": "bar"}');
alert(result.foo);
將顯示bar
。另請注意,JSON.parse方法是現代瀏覽器中的一種內置方法。這是純粹的JavaScript,並且與jQuery完全無關。傳統瀏覽器不支持它。對於他們,您需要將json2.js腳本包含在您的頁面中。
The second執行AJAX通話,並希望作爲參數的URL:
jQuery.getJSON('/someserversidescript', function(result) {
// callback to be executed when the AJAX request succeeds
});
正如你可以在這裏看到的參數是一個URL。撥打jQuery.getJSON('{"foo": "bar"}')
完全沒有意義。我想這就是爲什麼你的服務器響應403錯誤,因爲這是你的服務器上無效的網址。它期望服務器將返回一個JSON字符串作爲響應。它只是一個簡寫:
$.ajax({
url: '/someserversidescript',
type: 'GET',
dataType: 'json',
success: function(result) {
// callback to be executed when the AJAX request succeeds
}
});
閱讀[getJSON](http://api.jquery.com/jQuery.getJSON/)的文檔...它不讀取字符串,它向服務器發出請求並嘗試解析響應作爲JSON – Esailija