我不能从JavaScript传递变量到PHP并且jQuery加载响应

时间:2016-08-21 06:33:34

标签: javascript php ajax

我希望通过AJAX将2个参数传递给PHP页面并加载响应,但此代码无效。

JavaScript的:

$(".show_category").click(function(){
    var category_id = $(this).attr('data-category');
    $.ajax({
        url: "conx.php",
        method: "POST",
        data: {
            action: "sort_category",
            category_id: category_id
        },
        success: function(data) {
            $("#con").load("conx.php");
        }
    });
});

PHP:

<?php
    echo "1".$_POST["action"]."<br/>";
?>

1 个答案:

答案 0 :(得分:0)

你的问题在这里:

    success: function(data) {
        $("#con").load("conx.php");
    }

此时,您已经发布了数据并收到了HTML响应。不需要通过调用.load来发出另一个HTTML请求,这样做意味着在没有POST数据的情况下再次请求它,因此它不会产生预期的效果。只需使用data参数中已有的HTML。

    success: function(data) {
        $("#con").html(data);
    }

另外,这个PHP代码是reflected XSS vulnerability

<?php
    echo "1".$_POST["action"]."<br/>";
?>