Ajax成功和错误函数在jquery中没有正确调用

时间:2017-03-07 06:38:00

标签: javascript php jquery json ajax

我已经使用postman将json数据发送到指定的url。我在postman中得到了json的请求响应。我想将这个json发送到其他文件,所以我使用了ajax post方法.Ajax post方法是没调用。我的功能在这里没有触发成功或错误。

 <?php
// get the HTTP method, path and body of the request
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'));
$input = json_decode(file_get_contents('php://input'),true);
$value1=json_encode($input);
//echo print_r($value1,1);
?>
<script type="text/javascript">
  $(document).ready(function() {
  //  alert("hello");
      var jsondata = <?php echo $value1 ?>;
      $.ajax({
        url: "/restapi/subscribe.php",
        type: "POST",
        data: { jsondata:jsondata },
        dataType: "json",
        Content-Type: "application/json",
        success: function() {
          alert("data sent!");
        },
        error: function() {
          alert("There was an error. Try again please!");
        }
      });
      return false;
    });
</script>

我发送任何json数据作为输入。输出json数据应该发布在subscribe.php.In subscribe.php我写了

<?php 
$json=$_POST['jsondata'];
echo $json;
?>

4 个答案:

答案 0 :(得分:4)

尝试使用以下代码

<script type="text/javascript">
  $(document).ready(function() {
  //  alert("hello");
      var jsondata = <?php echo $value1 ?>;
      $.ajax({
        url: "/restapi/subscribe.php",
        type: "POST",
        data: { jsondata:jsondata },
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function() {
          alert("data sent!");
        },
        error: function() {
          alert("There was an error. Try again please!");
        }
      });
      return false;
    });
</script>

让我知道它是否有效

答案 1 :(得分:1)

你应该从你的js代码中删除Content-Type:“application / json”并使用php脚本中的下一个代码:

header('Content-Type: application/json');
echo json_encode($data);

答案 2 :(得分:0)

我认为问题出在Content-Type 尝试将其替换为contentType:"application/json"

答案 3 :(得分:0)

尝试将Content-Type: "application/json"替换为contentType: "application/json; charset=utf-8",