解決ajax成功返回text數據與字符串比較永遠爲false問題,且success中書寫if語句失效問題。

今天做畢設出現了這個問題

太長不看系列:返回的數據或字符串兩端有雙引號,雙引號爲字符串的一部分,導致與其它字符串使用==判斷時總是false。

詳解:

首先問題背景是前端ajax發請求給後端,後端返回text的數據:如下

text爲字符串,返回可能爲 字符串 like  或  dislike

當data爲 like時       走 if 的第一個邏輯

當data葦 dislike 時 走 if 的第二個邏輯

但是事實卻是永遠走第二個。

因此console.log輸出 data,得到如下結果

這不和我想要比較的一樣麼!!!!爲什麼永遠是false!!!!o(╥﹏╥)o

在這裏我卡了半小時後!!!

我說把like也輸出一下:

見證奇蹟的時刻!!!

得到如下結果:

哇 _(:з」∠)_  我踏馬·····(ŎдŎ;)         (ŎдŎ;)       (ŎдŎ;)       (ŎдŎ;)      (ŎдŎ;)

懂了麼!當你只console.log輸出data時 肯定發現不了爲什麼不相等,因爲想不到雙引號爲字符串的一部分

答案就是 data字符串  "like" 兩邊的雙引號是字符串的一部分!

字符串  ""like""  與 字符串  "like"   使用==   結果肯定是false啊啊啊啊

解決方案:

在需要對比的字符串兩邊增加雙引號

去掉data兩邊的雙引號

如下:記得轉義

if(data=="\"like\""){

這樣就能使用ajax返回的數據與字符串對比了。

 

ps:看見也有人搜if語句判斷無效,這算是XY問題了(百度XY問題),所以這裏不是if語句判斷失效,而是判斷都得出false所以而且可能之後的else if語句都爲false,導致會認爲是if語句失效,我開始也是這樣認爲 ,以爲是success裏面不能書寫if語句

如果幫助到你了,點個贊讓更多人得到幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章