【问题标题】:$_POST won't receive ajax$_POST 不会收到 ajax
【发布时间】:2016-10-09 11:33:31
【问题描述】:

AJAX 工作正常,但 $_POST 没有值。

我尝试过的:

  • $data = json_decode(file_get_contents('php://input'), true); & $post = json_decode($data); 进入 storecart.php
  • 将数据更改为'jCart=' + jData'
  • 删除数据类型 (Jaromanda X)
  • 回答(Umakant Mane)

cart 是一个对象数组

Javascript:

        $(document).ready(function(){
            $("#showcart").click(function(event){
                event.preventDefault();
                showcart();
                url = 'cart.php';
                $(location).attr("href",url);
            });
        });

        function showcart(){
            var jData = JSON.stringify(cart);
            $.ajax({
                url:"storecart.php",
                type:"post",
                data: {jCart : jData},
                datatype: "json",
                success: function(data){
                    console.log("SUCCESS")
                    console.log(jData);
                },
                error: function(data){
                    console.log("REDO")
                }
            });     
        }

storecart.php:

<?php
    if(isset($_POST['jCart'])){
        echo "Right";
    }else{
        echo "Wrong";
    }
?>

如何让$_POST 接受json.stringify

解决方案:

已解决:

我所做的只是添加一个具有隐藏值的表单

<form id = "postform" action = "cart.php" method = "post">
  <input type = "hidden" id="obj" name="obj" val="">
  <input type = "submit" value = "Show Cart" id = "showcart">
</form>

在 Javascript 中:

$(document).ready(function(){
  $("#showcart").click(function(){
    var json = JSON.stringify(cart)
    $('#obj').val(json);
    $('#obj').submit();
  });
});

感谢所有回答的人,但希望这会有所帮助。

【问题讨论】:

  • What I have tried: - 你试过设置dataype: "json", - 也可以看stackoverflow.com/a/18867369/5053002
  • ^ 如果您希望从服务器返回 JSON,您不能只发送 Right
  • @Jaromanda X,第一个点来自您提供的链接
  • 所以...如果您自己解决了问题,请不要编辑您的问题,而是将其添加为答案,然后接受它作为正确答案

标签: javascript php jquery ajax post


【解决方案1】:
 $(document).ready(function(){
 var data = {one:"one", two:"two", three:"three"};
 var jsonData = JSON.stringify(data);
  $("#clickme").click(function() {
  $.ajax({
  url:"demo.php",
  type:"POST",
  data:{cart:jsonData},
  success:function(response){
      console.log(response);
  }, error:function(err) {
    console.log(err);
 }

 })
 }); 
 });

PHP

  <?php

 if(isset($_POST['cart'])){
    echo "Right";
  }else{
    echo "Wrong";
  }
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 2017-03-18
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多