2012-07-07 46 views
0

我正在使用echo發送一個字符串回javascript函數,但是發送的字符串的長度比js函數讀取的長度小1。當我查看螢火蟲控制檯中的第一個字符時,值爲「」。如何防止echo將null字符附加到輸出字符串?

echo "Success"; 

我執行由Ajax調用從而未能返回的數據進行了比較:

if (data == "Success") 

如果我申請了jQuery $ .trim運作成功爲止。

回答

1

我認爲echo()不是打印空字符,它是打印回車。改爲使用print()

爲了避免這個問題,我要麼使用更多的RESTful HTTP狀態碼來表示成功和失敗(在這種情況下,jQuery甚至有特定的onFailure和onSuccess回調),或者使用JSON來編碼你正在返回的值。你可以讓PHP做echo json_encode(array('status' => 'success'));,然後在jQuery做if(data['status'] == 'success')。如果您決定稍後返回實際數據,這將使您的代碼更具前瞻性。如果你以後做了,請確保正確設置了你的內容類型,或者告訴jQuery期望JSON。

+1

Couldnt agree more。 Theres沒有理由發送純文本......它總是發送一種格式,無論是「JSON」,「XML」還是「HTML」片段直接插入DOM。 – prodigitalson 2012-07-07 23:47:43

0

您的PHP文件末尾可能有一個空格。確保文件不以?>結尾(如果存在則刪除)。這總是會產生問題,導致輸出中出現額外的空白。