2017-08-17 58 views
0

箭頭下面的圖片顯示在Chrome DevTools功能的調試:

enter image description here

我意識到,從PHP文件返回的數據總是有字符串前的箭頭如上所述。這是什麼原因?

這對我來說是個大問題。例如,比較字符串時。每當我使用

if(data == "success") 

該塊中的語句將不會運行,因爲它將是錯誤的。我在PHP文件中使用的代碼是:

echo 'success'; 

回答

0

該值來自服務器。您需要修復代碼,以便生成正確的響應。很可能您在調用的PHP文件的開始處有一些換行符,應該將其刪除。

這就是說,你可以從JS響應修剪空白:

if (data.trim() == 'success') 

我也建議你修改服務器代碼,以便您返回比純文本以外的東西,因爲,你見過,文字很容易受到空白的影響。

嘗試返回JSON。然後您可以在響應中使用布爾標誌並避免與任意字符串進行比較醜陋的比較。

0

使用trim()功能

if (data.trim() === 'success') 

邊注:請使用===在可能的情況

從API方面,如果可以訪問,然後檢查返回值的習慣

0

而不是返回一個字符串,你可以想要返回一個JSON對象。 這將幫助你,因爲像Rory說,你可以使用布爾值,並返回多個變量到你的頁面。用JS訪問JSON對象很容易。

爲了做到這一點,只需創建一個PHP數組,添加你想要的數據。然後,當您想要返回數組時,請使用json_encode()返回數組的JSON表示。

PHP代碼(AJAX目標文件)

$return = array(
    'status' => true 
); 

echo json_encode($return); 

JS(回調函數)

if(response.status) { 
    console.log('success') 
} 
+0

回調函數不會爲我工作。它只有當我把if(data.status!= true)時才起作用。 – DanielleS

+0

@DanielleS,你可以在檢查員中截取返回的對象嗎? – Ivan