gbe*_*927 1 javascript jquery parsing json
当我使用JSON.parse(jsonString)时,JSON的解析完全没问题.
var result = JSON.parse(jsonString);
Run Code Online (Sandbox Code Playgroud)
但是当我使用jQuery.getJSON(jsonString)时,我收到了一个http错误403.
var result = jQuery.getJSON(jsonString);
Run Code Online (Sandbox Code Playgroud)
知道为什么一个会工作而另一个不会?他们都在读一个字符串.
谢谢!
他们都在读一个字符串.
不好了!这两种方法非常不同.他们绝对没有任何共同之处.他们正在完成两项完全不同的任务.
第一个简单地将JSON字符串解析为javascript对象:
var result = JSON.parse('{"foo": "bar"}');
alert(result.foo);
Run Code Online (Sandbox Code Playgroud)
会表明bar.另请注意,JSON.parse方法是现代浏览器中的内置方法.它是纯粹的javascript,与jQuery完全无关.旧版浏览器不支持它.对于他们,您需要将json2.js脚本包含在您的页面中.
jQuery.getJSON('/someserversidescript', function(result) {
// callback to be executed when the AJAX request succeeds
});
Run Code Online (Sandbox Code Playgroud)
正如你在这里看到的那样,论证是一个网址.通话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
}
});
Run Code Online (Sandbox Code Playgroud)