如何使用jQuery在GET请求上强制字符串响应

How to force string response on a GET request with jQuery?

本文关键字:字符串 响应 请求 何使用 jQuery GET      更新时间:2023-09-26

我写了以下代码:

$.get('http://example.com/books.json', function (data) {
  // ...
});

books.json是新书的对象列表,有时jQuery会将JSON数据解析为对象,但有时会以字符串形式离开(可能是因为一些国际/utf8问题)。在这种情况下,我自己调用JSON.parse()并获得有效的JSON对象。

我有一个问题,因此-什么是正确的方式来强制JSON。解析时做一个GET请求与jQuery?我不想让jQuery猜测它是否是JSON数据。如何让jQuery始终认为它是字符串,而我总是调用JSON。解析我自己?

$.get接受一个可选的dataType参数,您可以指定text来强制它以普通字符串的形式返回数据。

$.get('http://example.com/books.json', function (data) {
  // ...
}, "text");

否则,它将查看响应中的Content-type:报头来确定数据类型。

如果要强制 JSON解析,可以指定json,也可以使用$.getJSON

我认为最好的方法是使用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);
    });
});