jquery接收不到資料的解決方案:1、設定「contentType:"application/x-www-form-urlencoded"」;2、檢查post和get語句即可。
本文操作環境:Windows7系統、jquery3.2.1、Dell G3電腦。
jquery接收不到資料怎麼辦? jQuery ajax從後台取不到資料 ?
ajax post data 取得不到數據,注意 content-type的設定 、post/get
關於 jQuery data 傳遞資料。網路上各種取得不到數據,亂碼之類的。
好吧今天我也遇到了,網路上一查各種糾結。亂碼不管先看取得不到數據。
因為之前一直用jQuery ajax get的方式傳遞參數, 預設沒有設定過 contentType 的值。
1: var Skip = 49; //Number of skipped row 2: var Take = 14; // 3: function Load(Skip, Take) { 4: $('#pPostsLoader').html('<img src="ProgressBar/ajax-loader.gif">'); 5: //send a query to server side to present new content 6: $.ajax({ 7: type: "get", 8: url: "AjaxImage.ashx", 9: data: { Skip: Skip, Take: Take }, 10: //contentType: "application/json; charset=utf-8",//(可以) 11: //contentType: "text/xml",//(可以) 12: //contentType:"application/x-www-form-urlencoded",//(可以) 13: //dataType: "string", 14: success: function (data) { 15: if (data != "") { 16: $('.thumb').append(data); 17: } 18: $('#pPostsLoader').empty(); 19: } 20: }) 21: };
chrome下,沒有設定contentType的值,好,我們來看jquery中的預設:
##預設參數透過url參數傳遞,請求的內容類型:application/x-www-form-urlencoded一般處理文件取得參數內容:int Skip = Convert.ToInt32(context.Request["Skip"]); 2: int Take = Convert.ToInt32(context.Request["Take"]);毫無壓力,因為我一直都是這麼幹的,沒有任何問題。好了,來換一下請求的內容類型:
1: //contentType: "application/json; charset=utf-8",//(可以) 2: //contentType: "text/xml",//(可以)
<p>也都可以,参数获取正常。<br></p>這也就是我們說的get方式,參數是跟在url後邊,與Content-Type無關。
可是今天要用post方式了有木有。1: $.ajax({ 2: type: "post",
<p>chrome下,没有设置contentType的值,来看默认情况:<br></p>data資料由from表單提交,要求的內容類型: application/x-www-form-urlencoded,好了,預設一般處理檔案取得參數也可以。可是,但是 我最開始設定的是 contentType: "application/ json; charset=utf-8",看圖: Request Paload 是什麼???調試一下,看我們的from裡邊,沒有內容: 經測試:
1: //contentType: "application/json; charset=utf-8",//(不可以) 2: //contentType: "text/xml",//(不可以) 3: contentType:"application/x-www-form-urlencoded",//(可以)
<p>总结一下吧:本来get/post方式都是知道的,但注意,contentType与传递数据匹配(本文data)。<br></p>
<p> 做过模拟登录、模拟提交数据的同学肯定都很清楚了。<br></p>推薦學習:《
jquery影片教學》
以上是jquery接收不到資料怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!