2016-07-27 26 views
-1

我想使用jQuery將表單數據發送到另一個PHP頁面。jquery序列化表單數據返回錯誤

這是我的代碼:

var datastring = $("#form1").serialize(); 
      $.ajax({ 
       type: "POST", 
       url: "save.php", 
       data: datastring, 
       dataType: "json", 
       success: function(data) { 
        console.log(data) 
       }, 
       error: function(data) { 
        alert('error handing here'); 
        console.log(data) 
       } 
      }); 

當我運行此我得到一個警告「錯誤處理這裏的輸出記錄到我的控制檯。

保存只包含:

<?php 
    ECHO "HELLO"; 
?> 

登錄控制檯上的數據是:

Object {readyState: 4, responseText: "HELLO", status: 200, statusText: "OK"}

任何人都可以提出建議,爲什麼這不工作..而當它我該怎麼辦讀取提交到save.php的數據?

感謝

+2

你請求一個JSON響應,但是'HELLO'不是有效的JSON 。因此,jQuery的內部解析操作失敗,並且您收到錯誤。 –

+2

您沒有從PHP腳本返回格式化的JSON字符串,這就是爲什麼。因此,要測試它,返回JSON或移除'datatype'選項以獲得ajax請求 –

+1

'dataType:'text''將解決這個問題,或者在您的PHP中使用'json_encode()'來實際返回一個JSON響應。 –

回答

2

你不迴應JSON在你的腳本,它是純文本。所以,你應該改變你的dataTypehtmltext

dataType: "html", 

或更改你的PHP腳本的JSON響應:

echo json_encode(array("text" => "HELLO"));