jquery post请求带内容类型的ajax

时间:2012-08-07 19:32:11

标签: php jquery html ajax post

你好我的代码如下:

<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行的内容类型的东西我得到输入作为输出但是我没有得到任何输出!问题是我真的需要内容类型的东西,所以任何信息都会非常有用!

2 个答案:

答案 0 :(得分:0)

您将数据作为表单数据发送,但将发送的数据声明为XML。当PHP期望XML时,PHP无法解析JSON数据,因此不会返回任何内容。并且可以设置contentType

来自jQuery Documentation

  

contentType默认值:'application / x-www-form-urlencoded;字符集= UTF-8'

  将数据发送到服务器时,请使用此内容类型。   默认为“application / x-www-form-urlencoded; charset = UTF-8”,其中   对大多数情况来说都很好。如果您明确传入内容类型   $ .ajax(),然后它将始终发送到服务器(即使没有数据   发送)。如果没有指定字符集,则数据将被传输到   服务器使用服务器的默认字符集;你必须解码这个   适当地在服务器端。

答案 1 :(得分:0)

更改第21行

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

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