2011-03-29 50 views
6

我使用$ .ajax jquery方法調用不同的php文件...昨天一切都很好,但清理完我的代碼後,我不知道我做了什麼,但現在的Ajax響應就像"[space]data",而不是"data" ..奇怪的事情,ajax響應包括空白

我可以使用JS中的微調功能,但我想解決這個問題的根源...

我所有的PHP文件已經丟失的最後?>爲了避免這個,以及<?php之前我敢肯定,剛剛檢查,沒有空間...

我怎麼介紹這個錯誤?服務器?瀏覽器?

有趣的是,昨天我用JSLINT清理了我的代碼..!壞主意..

感謝

+0

不知道我們應該如何知道這個沒有任何代碼... – Dutchie432 2011-03-29 18:32:14

+0

任何PHP代碼顯示? – Neal 2011-03-29 18:32:48

+0

phph代碼不是影響...只是 Francesco 2011-03-29 18:35:37

回答

18

當我有同樣的問題,它只是關閉PHP標籤後回車或空間,一個令人驚訝的一件容易的事情偶然引入。

請確保您在腳本的第一行開始時打開PHP標記,並在結束時關閉它,並在關閉標記後刪除所有內容(應該很容易在一個好的編輯器中找到)。

我可以看到沒有理由不關閉你的PHP標籤不會真的很煩人..但那就是我!

+0

是的,我認爲......事實上,我不得不通過所有的孩子和父母文件,我終於找到額外的f **空間!謝謝 – Francesco 2011-03-29 18:53:26

+1

PHP將EOF視爲等同於關閉的PHP標記。因此,文件末尾的關閉PHP標籤是多餘的。而且,正如你所發現的那樣,它很容易出錯。除了打破AJAX請求之外,如果在DOCTYPE之前獲得任何空格,則可以將某些版本的IE發送到quirksmode。在我的日常工作中,我們使得它關閉PHP標籤成爲一種習慣,我從不在個人工作中使用它。 – JAAulde 2012-03-17 12:56:30

+0

我還在所有包含文件的開頭添加空格時發現UTF BOM。我重新保存了沒有BOM的文件 – 2015-07-17 16:20:22

0

如果您的服務器響應包含額外的空間,那麼php代碼是原因。如果你的回覆不包括額外的空間,那麼問題必須在JavaScript中。

使用Fiddler檢查服務器的實際響應,看它是否真的有空間。然後你會知道如果問題出在PHP或JS上。然後你可以發佈相關的代碼。

9

我知道我遲到了這個線程,發現它,因爲我有同樣的問題。我能夠確認,儘管您可以清除回調函數中的所有空格,但仍可以在響應文本中獲得這些空格/回車符(您甚至可以在「網絡」下的chrome開發人員工具中看到此內容)標籤)。

所以我測試並發現,如果您將ob_clean();放在回調函數的頂部,那麼它將清除所有這些空格。我不太瞭解這個功能,只是在代碼中提到它(http://codex.wordpress.org/AJAX_in_Plugins#Debugging)。希望可以幫助其他人在這裏找到相同的問題

+1

此外,由於遇到此[有用的解釋](http://stackoverflow.com/a/4401992/1058371) – Xtremefaith 2014-09-12 01:55:57