Ajax和PHP - 意外行为

时间:2017-07-07 05:55:38

标签: javascript php ajax

我使用ajax向php页面发送请求,该页面设置cookie并使用echo函数将消息发送回浏览器。但问题是php成功设置了cookie但我没有收到回信中的消息。 我已经控制台记录了XMLHTTPRequest对象以确认。

这是PHP代码:

    <?php header("Access-Control-Allow-Origin: *");
    session_start();
    // echo "true"; - If I put the echo here , I get the response.
    if(isset($_POST['init'])){
        $x00 = universe::decode($_POST['init']);// Just a static function call of object Universe.
        $_SESSION['id'] = $x00['id'];
        echo "true"; // This echo does not appear in the response.
    }
    ?>

然而,responseText未定义,它是一个空字符串。看看Pic。 Chrome Dev Tools.

1 个答案:

答案 0 :(得分:0)

发现问题,感谢帮助,伙计。

我在intinally做的是对json数据进行字符串化并将其作为正常的帖子请求发送并预期它可以正常工作,但由于某种原因它没有。

我编写了一个向服务器发送帖子请求的函数。

ajax.send(x); //Send is a function of the object ajax , x is the payload.

param = {"id": "qbcd"} //json data
param=JSON.stringify(ajax.param); // converted to string.
ajax.send("init="+param); // This will send a post request to the server.

我认为它会发送post请求,init是一个字符串,然后我可以使用$ _POST [&#39; init&#39;]访问该字符串,并在其上使用json_decode。但由于某种原因,有效负载仅包含stringyfied json(使用Chrome Dev Tools检查),所以现在我们必须使用$ _POST [0]访问它,即访问post数组的第一个元素然后解析它。 Post现在不是一个关联数组(idk为什么)。

感谢您发表评论:) 喜欢stackoverflow。