溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jQuery $.post()返回類型為json時(shí)不進(jìn)入回調(diào)函數(shù)的原因及解決方法

發(fā)布時(shí)間:2020-07-21 15:45:03 來(lái)源:網(wǎng)絡(luò) 閱讀:1654 作者:我不會(huì)抽煙 欄目:web開(kāi)發(fā)

這真是個(gè)讓人特別抓心找撓肝的問(wèn)題,真的差點(diǎn)被這個(gè)問(wèn)題逼的放棄去使用json作為返回類型,而是去用html,但是有的時(shí)候就是要較汁一下。(即便現(xiàn)在問(wèn)題解決了,我還是想說(shuō)句“媽蛋”,來(lái)發(fā)泄一下)

其實(shí)主要還是自己對(duì)json的不夠了解,但是很納悶,網(wǎng)上對(duì)路的解決方法幾乎沒(méi)有。所以雖然問(wèn)題很小,但是還是想要分享出來(lái),希望能幫到需要的人。

首先$.post()格式如下:

$.post(url,data,success(data, textStatus, jqXHR),dataType)

參數(shù)描述

url
必需。規(guī)定把請(qǐng)求發(fā)送到哪個(gè) URL。

data  
可選。映射或字符串值?;臼莏son格式。

success(data, textStatus, jqXHR)      
可選。請(qǐng)求成功時(shí)執(zhí)行的回調(diào)函數(shù)。

dataType

可選。規(guī)定預(yù)期的服務(wù)器響應(yīng)的數(shù)據(jù)類型。默認(rèn)執(zhí)行智能判斷(xml、json、script 或 html)。

示例:

                $.post("../../xxx/ajaxPost.aspx",
                    {
                        action: "xxx",
                        id: xxx
                    },function (data,status) {
                        alert("name="+data.name+",age="+data.age);
                    },
		    "json");

打斷點(diǎn)可以正常進(jìn)入到后臺(tái)。直到想要的操作完成,組成新的json數(shù)據(jù),利用Response.Write()返回,但是無(wú)論如何也不走function()方法,之前有想到是json格式的問(wèn)題,但是改了還是不行。

后來(lái)終于終于

后臺(tái):

            result = "{\"name\":\"Michael Jordan\",\"age\":\"51\"}";
            Response.Write(result);
            Response.End();

大家注意,都知道json的格式是{"key1”: "value1”, "key2”: "value2”} 這樣(或者是把{}中的雙引號(hào)變成單引號(hào)),但是在C#代碼部分卻是需要在引號(hào)(“”)前加上轉(zhuǎn)義字符(\)的,否則永遠(yuǎn)走不到回調(diào)方法。

$.post()方法在以json作為返回類型的時(shí)候,是嚴(yán)格要求使用json格式才可以進(jìn)入回調(diào)的。所以……

運(yùn)行截圖:

jQuery $.post()返回類型為json時(shí)不進(jìn)入回調(diào)函數(shù)的原因及解決方法

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI