如何强制使用 jQuery 对 GET 请求进行字符串响应?
How to force string response on a GET request with jQuery?
我写了下面的代码:
$.get('http://example.com/books.json', function (data) {
// ...
});
books.json
是新书的对象列表,有时jQuery会把JSON数据解析成对象,但有时会留下字符串(可能是因为某些international/utf8 问题)。在那种情况下,我自己调用 JSON.parse() 并获得有效的 JSON 对象。
因此我有一个问题 - 在使用 jQuery 执行 GET 请求时强制执行 JSON.parse 的正确方法是什么?我不想 jQuery 猜测它是否是 JSON 数据。我怎么能让 jQuery 一直认为它是字符串,而我总是自己调用 JSON.parse?
我认为最好的方法是使用 jQuery.getJSON() 而不是 $.get
.
如果 data 参数的值是一个普通对象,它会被转换成一个字符串并在附加到 URL 之前进行 url 编码。
大多数实现都会指定成功处理程序:
$.getJSON( 'http://example.com/books.json', function( data ) {
$.each( data, function( key, val ) {
console.log('key is : '+key+" AND value is :"+val);
});
});
$.get
有一个可选的 dataType
参数,您可以指定 text
强制它 return 将数据作为纯字符串。
$.get('http://example.com/books.json', function (data) {
// ...
}, "text");
否则,它会查看响应中的 Content-type:
header 以确定数据类型。
如果你想强制一个JSON解析,你可以指定json
,或者你可以使用$.getJSON
.
我写了下面的代码:
$.get('http://example.com/books.json', function (data) {
// ...
});
books.json
是新书的对象列表,有时jQuery会把JSON数据解析成对象,但有时会留下字符串(可能是因为某些international/utf8 问题)。在那种情况下,我自己调用 JSON.parse() 并获得有效的 JSON 对象。
因此我有一个问题 - 在使用 jQuery 执行 GET 请求时强制执行 JSON.parse 的正确方法是什么?我不想 jQuery 猜测它是否是 JSON 数据。我怎么能让 jQuery 一直认为它是字符串,而我总是自己调用 JSON.parse?
我认为最好的方法是使用 jQuery.getJSON() 而不是 $.get
.
如果 data 参数的值是一个普通对象,它会被转换成一个字符串并在附加到 URL 之前进行 url 编码。
大多数实现都会指定成功处理程序:
$.getJSON( 'http://example.com/books.json', function( data ) {
$.each( data, function( key, val ) {
console.log('key is : '+key+" AND value is :"+val);
});
});
$.get
有一个可选的 dataType
参数,您可以指定 text
强制它 return 将数据作为纯字符串。
$.get('http://example.com/books.json', function (data) {
// ...
}, "text");
否则,它会查看响应中的 Content-type:
header 以确定数据类型。
如果你想强制一个JSON解析,你可以指定json
,或者你可以使用$.getJSON
.