簡體   English   中英

jQuery POST和AJAX在返回的數據前加雙倍空格

[英]Jquery POST and AJAX prepend double space to returned data

大約2周后,我仍在努力解決此問題,但沒有解決的跡象。

PHP使用$ .ajax或$ .post返回的任何數據始終在返回的數據上添加兩個空格。 我已經整理了PHP中回顯的數據,以確認這不是服務器或腳本的問題。

例如

echo '{"id": "'.$myId.'"}';

成為:

'  {"id": "'.$myId.'"}' 

在檢查器中查看返回的數據時。 這給我的js腳本帶來了問題,因為它們期望在沒有錯誤的情況下什么也不會返回。 返回雙精度空格,當實際上沒有空格時會導致錯誤,從而阻止觸發其他事件。

我正在使用Jquery 1.8.3。

有誰知道是什么原因導致這個極為奇怪和煩人的問題?


我正在使用NetBeans


我記得這只是在我將應用程序移動到新服務器之后才開始發生的,但是我不知道這會對它產生怎樣的影響。

有可能在包含的php文件的末尾有空格(為防止這種情況,請跳過結尾的?>標記)。

另外,您應該檢查<?php前面是否沒有任何內容,並禁用UTF-8文件中的BOM。

從文件返回的數據將帶有空格,或者您將帶有html標記。 刪除所有標簽,行,空格,最后刪除?>

如果您要從test.php返回數據,則文件應如下所示

<?php
$myId = '1';
echo '{"id": "'.$myId.'"}';

這可能會有所幫助,

我認為您的腳本中有一個空格(可能來自包含的文件,但不確定)。 您可以通過在將數據發送到瀏覽器之前清除輸出緩沖區來解決此問題。 以下代碼將演示該想法。

<?php
ob_start();
echo ' '; // Possible whitespace (may be from included files)

----------
----------

if (YOUR_CHECK_FOR_AJAX_REQUEST) {
    ob_end_clean();
    $myId = 1;
    echo '{"id": "'.$myId.'"}';
    exit;
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM