【問題記錄】ajax dataType屬性


最近整理代碼,發現一些ajax dataType 屬性值設置的問題。下面直接上代碼說明下

前台ajax請求

$.ajax({
            type: "get",
            dataType: "json",
            url:url,
            data: {},
            success: function (data) {
               console.log(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                console.log(XMLHttpRequest);
                console.log(textStatus);
                console.log(errorThrown);
            }
        });

注意這里dataType設置的是 json

后台邏輯處理及返回

方式一:

    @ResponseBody
    public String getCode() {
       return "test";
    }

方式二:

   @ResponseBody
    public String getCode() {
       return "123456";
    }

最后測試的結果是方式一會報錯,方式二正常

方式一報錯情況:

經過查詢資料發現,dataType:json

是將響應通過JSON.parse(響應數據)轉化為javaScript對象

對於String類型的數據通過JSON.parse()進行轉換是需要用“”括起來才能正確解析的

下面是幾組測試

看到這個結果,我認為應該是JSON.parse 會默認進行數據類型轉換,比如Boolean、Integer等

所以為了避免解析異常,還是嚴格按照dataType支持的類型根據實際需要配置

如果只是需要純文本,dataType就配置為 'text'

dataType 屬性可用值:

 

參考鏈接:

http://www.w3school.com.cn/jquery/ajax_ajax.asp

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM