将JSON发布到php脚本服务器端失败

时间:2013-08-02 15:14:19

标签: php jquery mysql ajax server-side

这是我的jquery代码:

var jsObj = {"user_id":5, "login":"hsm"};
var str_json = JSON.stringify(jsObj);
$.post("json_handler.php", str_json)
    .done(function(){
        alert('data sent successfully');
        window.location = "http://localhost/quranMapping/php/json_handler.php";
    })
    .fail(function(){
        alert('fail');
    });

注意:我进行了重定向以查看问题所在。

这是我的PHP代码(json_handler.php文件):

<?php

//create a DB connection
$con=mysqli_connect("127.0.0.1","root","","my_db");

$input = file_get_contents('php://input');
$result = json_decode($input);

echo $result->user_id;
mysql_close($con);
?>

由于错误看了附图,

我如何纠正这个问题?

enter image description here

更新:当我使用$input = $_POST['str_json']时,错误为undefined index

2 个答案:

答案 0 :(得分:1)

json_decode可能失败,返回NULL值。请var_dump($result)var_dump($input)查看您从客户端和json_decode获取的内容。

答案 1 :(得分:0)

为什么不尝试使用

时:

var jsObj = {"user_id":5, "login":"hsm"};
var str_json = JSON.stringify(jsObj);
$.post("json_handler.php", {"str_json" :str_json})
            .done(function(){
                alert('data sent successfully');
                window.location = "http://localhost/quranMapping/php/json_handler.php";
            })
            .fail(function(){
                alert('fail');
            });

PHP:

<?php

//create a DB connection
$con=mysqli_connect("127.0.0.1","root","","my_db");

$input= $_POST['str_json']
$result = json_decode($input);

echo $result->user_id;
mysql_close($con);

?>