Wordpress ajax调用返回整个页面的html

时间:2014-11-18 16:53:50

标签: javascript php jquery ajax wordpress

我在wordpress网站上运行了以下javascript:

var PostData = "Action=refresh-cart";
                     jQuery.ajax({
                       dataType: "text",
                       type: 'POST',
                       url : location.href,
                       cache: false,
                       data : PostData,
                       complete : function() {  },
                       success: function(data) {
                         //   jQuery("#loading-img").hide();

                           // jQuery("#join-class-div-3").html(data);

                        }           
                });

php是:

<?php 

  if(isset($_POST['Action'])) {
        $Action = $_POST['Action'];
        if($Action == "refresh-cart") {


           echo '<div id="stuff"><p> done LOL </p></div>'; 
            }
        }

    ?>

所以我希望被送回:

<div id="stuff"><p> done LOL </p></div>

但我收到整整一页的HTML!?为什么!?

2 个答案:

答案 0 :(得分:1)

它将从您的网址“location.href”呈现的网页返回所有内容

尝试在您的php代码中添加exit()以在回显后停止它。

<?php 
if(isset($_POST['Action'])) {
    $Action = $_POST['Action'];
    if($Action == "refresh-cart") {
         echo '<div id="stuff"><p> done LOL </p></div>';
         exit;
    }
}
?>
<div>html content here will not be displayed</div>

答案 1 :(得分:0)

问题出现了,因为location.href是一个高级别的URL,所以wordpress在ajax请求周围注入了大量的html。

通过将location.url更改为对作为wordpress PHP API一部分的plugins.url()的调用 - AJAX调用直接进入我的PHP页面并获得正确的响应:)