在Ajax请求后发布$ _POST为空

时间:2018-01-30 19:40:18

标签: javascript php jquery ajax post

我试图在论坛上的其他类似帖子中检查解决方案,但我还没有解决我的问题。 所以,我在.js页面中有这个Ajax请求

JS代码

$(document).ready(function(){
$(document).on('click', '.mySubmitTextButton', function() {
    var dataToSend = {};
    dataToSend.text = $("#comment").val();
    console.log(dataToSend);
    $.ajax({
        type: "POST",
        url: "../submitPages/submitText.php",
        data: dataToSend,
        dataType: "json",
        success: function(result){
            console.log(result);
            var mediaToClone = $(".rowToCopy").clone();
            $(".userId", mediaToClone).html(result.user);
            $(".textTweet", mediaToClone).html(result.text);
            $(".userAvatar", mediaToClone).attr("src",result.avatar);
            mediaToClone.removeClass("rowToCopy hidden");
            mediaToClone.appendTo($(".tweetBox"));
        },
        error: function(result){
            console.log(result);
        }
    });
});
});

PHP代码

if (!isset($_SESSION)) { session_start(); }
include ("../db/db.php");

var_dump($_POST);
if(submitText($_POST["text"], $_SESSION["name"])){  //which is the call to the query function
    $propic = getUserPic($_SESSION["name"]);
    $result = array(
        "text" => $_POST["text"],
        "user" => $_SESSION["username"],
        "avatar"=>$propic
    );
    echo json_encode($result);
}

来自浏览器

   Form Data
     text: test  //This is the Params Tab


    //In the response tab
    <pre class='xdebug-var-dump' dir='ltr'>
    <b>array</b> <i>(size=1)</i>
    'text' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'ccccccccc'</font> <i>(length=9)</i>
</pre>{"text":"ccccccccc","user":"blackout_chisel","avatar":"..\/..\/img\/useravatar\/0826fc411cd2dc627ddd0b0cac0f7fb7.jpg"}

数据似乎正确地从js传递到php(在浏览器控制台中我看到参数正确传递),但是在php文件中使用var_dump($ _ POST),我得到一个空数组,所以我可以'在查询情况下使用$ _POST [“text”]索引未定义。 有任何想法吗?

1 个答案:

答案 0 :(得分:0)

好的,谢谢大家,我对它有误解。它完美地运作。当ajax调用已经完成时,我试图看到结果var_dump($ _ POST)。这就是为什么它显然是空的。