日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

java servlet 獲取ajax json null 應(yīng)該如何寫ajax【重要】

 一本正經(jīng)地胡鬧 2019-09-06

       var jsonObject = new Object();

        jsonObject.name = "jack";

        jsonObject.phone = "13879013334";

        jsonObject.id = "asdghj";

        

        $.ajax({

            type:"POST",

            url: "${pageContext.request.contextPath}/ajax",

            //contentType: "application/json", //用servlet獲取 不需要寫這個(gè) 因?yàn)閷懥藀ost類型,默認(rèn)application/x-www-form-urlencoded

            dataType: "json", //服務(wù)器返回的數(shù)據(jù)類型??梢詫慾son,也可以寫text 有時(shí)候后臺(tái)發(fā)過來的json格式字符串會(huì)有問題,如BOM頭,用json會(huì)拿不到數(shù)據(jù),需要用text來測試           

            data: jsonObject//發(fā)送到服務(wù)器的參數(shù),直接用json對(duì)象。因?yàn)?span style="background-color: rgb(242, 242, 245);">contentType沒有用"application/json"就不需要用JSON.stringify(jsonObject)轉(zhuǎn)字符串,

            success: function (data) {

                console.log(data)

            },

            error: function (data){

                alert("解析數(shù)據(jù)失??!");

        }

        });      

解讀:

客戶端提交的contentType只能為application/x-www-form-urlencoded或者multipart/form-data,二進(jìn)制數(shù)據(jù)使用多重編碼。前面默認(rèn)編碼,即字符串,后者為文件。但如果從服務(wù)器下載的話編碼就很多了,比如你說的application/json,text/plan,application/image.....等都可以。


用springmvc的注解@RequestBody Map<String, String> params 可以接收到用ajax發(fā)來的參數(shù).

前臺(tái)代碼

$.ajax({

type : "POST",
url : url,
data : data,
dataType : "JSON",
contentType:"application/json",
success : function(result) {
alert(result);
}
});

后臺(tái)代碼
@RequestMapping(value = "/sk/api/params", method = RequestMethod.POST)
public void params(@RequestBody Map<String, String> params, HttpServletRequest request, HttpServletResponse response) {

System.out.println("總共獲取到:"+params.size()+"個(gè)參數(shù)");
for(String key : params.keySet()){
System.out.println(key + " : " + params.get(key));
}
writeJson(response, "ok");
}

不用框架,前端request的contentType是application/json的話,這樣獲取

StringBuffer json = new StringBuffer();
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null) {
json.append(line); 

//若前端發(fā)送的是json格式字符串,即用JSON.stringify(obj)轉(zhuǎn)換,

                                            拿到的是{"name":"jack","phone":"13879013334","id":"asdghj"}

//若前端發(fā)送的是json對(duì)象,拿到的是name=jack&phone=13879013334&id=asdghj

return json.toString();

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多