【问题标题】:jquery post request ajax with content type带有内容类型的jquery发布请求ajax
【发布时间】:2012-08-07 19:32:10
【问题描述】:

你好,我有下面的代码:

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

【问题讨论】:

  • PHP 是否获取数据?
  • 如果我有内容类型的东西,我猜不(我没有输出)!如果我删除它,是的,因为我得到了回声!
  • 从你的 js 中删除第 21 行。 var_dump($_POST);在接收请求的 php 文件中。它能给你你想要的吗?您还可以将 dataType: 'JSON' 添加到您的 ajax 参数中。
  • The thing is that i really need the content type thing你不是发送xml,为什么需要内容类型来指定xml?
  • 如果我删除该行,我会得到 array(0) { } 但我需要该行,我需要在帖子中设置内容类型!

标签: php jquery html ajax post


【解决方案1】:

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

来自jQuery Documentation

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

向服务器发送数据时,使用此内容类型。 默认为“application/x-www-form-urlencoded; charset=UTF-8”,即 大多数情况下都很好。如果您明确地将内容类型传递给 $.ajax(),那么它总是会被发送到服务器(即使没有数据是 发送)。如果没有指定字符集,数据将被传输到 服务器使用服务器的默认字符集;你必须解码这个 适当地在服务器端。

【讨论】:

  • 他发送的不是 JSON 只是普通的 application/x-www-form-urlencoded 数据
  • 除非您实际将 XML 发送到服务器,否则请省略该行。
  • 但是服务器抱怨请求检查这个stackoverflowsearch.comeze.com
  • 我从前端看不到服务器代码,所以我想我不知道问题是什么。 :-/
  • 肯定是你的PHP文件有问题。我认为使用print_r 将数组转换为字符串。尝试使用echo
【解决方案2】:

更改第 21 行

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

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

【讨论】:

猜你喜欢
  • 2015-09-29
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 2012-10-13
  • 1970-01-01
相关资源
最近更新 更多