2012-08-07 232 views
-1

你好,我有波紋管代碼:jQuery的POST請求AJAX

<script type="text/javascript"> 
14   $(document).ready(function() { 
15     $('#find').click(function(){ 
16       
17       var amount = $('#amount').val(); 
18 
19       $.ajax({ 
20         type: "POST", 
21         contentType: "text/xml;charset=utf-8", 
22         url: "questions.php", 
23         data: {'amount': amount}, 
24         success: function(data){ 
25           
26           $('#results').show(); 
27       
28           
29           $('#results').html(data); 
30         } 
31       }); 
32     }); 
33   }); 
34  </script> 

和我的PHP腳本有以下

5 $search_term = $_POST['amount']; 
6 echo $search_term; 

的代碼,如果我刪除第21行的內容類型的事情,我得到輸入作爲輸出,但與我沒有得到任何輸出!問題是我真的需要內容類型的東西,所以任何信息都會很有幫助!

+0

不PHP獲取數據呢? – 2012-08-07 19:36:10

+0

如果我有內容類型的東西,我猜沒有(我沒有輸出)!如果我刪除它是因爲我得到了回聲狗屎! – 2012-08-07 19:38:08

+3

從你的js中刪除第21行。 var_dump($ _POST);在接收請求的php文件中。它會給你想要的東西嗎?你也可以添加dataType:'JSON'到你的ajax參數。 – 2012-08-07 19:39:03

回答

0

您正在將數據作爲表單數據發送,但將發送的數據聲明爲XML。當期望XML時,PHP無法解析JSON數據,因此不會返回任何內容。並且可以設置contentType

jQuery Documentation

的contentType默認:「應用程序/ x-WWW窗體-urlencoded; charset = UTF-8'

將數據發送到服務器時,使用此內容類型。 默認爲「application/x-www-form-urlencoded; charset = UTF-8」,其中 對大多數情況都很好。如果明確地將內容類型傳遞到 $ .ajax(),則它將始終發送到服務器(即使沒有數據發送到 )。如果未指定字符集,則將使用服務器的默認字符集將數據發送到 服務器;您必須在服務器端正確解碼此 。

+0

我該如何解決這個問題? – 2012-08-07 19:48:43

+0

他沒有發送JSON只是定期'應用程序/ x-www-form-urlencoded'數據 – Musa 2012-08-07 19:48:58

+0

@Musa,是的,你是正確的。 – 2012-08-07 19:50:16

0

更改行21

contentType: "text/xml;charset=utf-8", 

contentType: "application/x-www-form-urlencoded;charset=utf-8", 
+0

問題是,我在這裏得到的錯誤http://stackoverflowsearch.comeze.com/,以至於不能解決我的問題 – 2012-08-07 20:00:17