2012-08-07 237 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