WordPress POST请求返回整个HTML页面而不是JSON响应

时间:2017-02-26 20:47:21

标签: html wordpress post request

当我在MAMP 4.1(Mac OS X 10.12 Sierra)下向我的本地开发WordPress发送POST请求时,它返回主页的整个HTML而不是预期的响应。行为似乎类似于this post,除了我确定原因不在请求的语法中,也不是与WooCommerce相关的插件(NSP代码软件许可证)接收它(启用了REST)

我重新安装了MAMP,尝试了MAMP Pro,并多次重新创建一个简单的WordPress测试网站,但无济于事。我的笔记本电脑上的相同开发站点(具有相同环境的MacBook Pro)与从PHP脚本或Postman应用程序发送的请求完美配合。邮递员确实提供了一个线索,在我桌面安装的回复标题中:

  

链接→http://localhost:8888/wordpress/wp-json/;的rel =" HTTPS://api.w.org/"

     

链接→http://localhost:8888/wordpress/;相对= shortlink

     

服务器→Apache / 2.2.31(Unix)mod_wsgi / 3.5 Python / 2.7.13 PHP / 5.4.45 mod_ssl / 2.2.31 OpenSSL / 1.0.2j DAV / 2 mod_fastcgi / 2.4.6 mod_perl / 2.0.9 Perl /v5.24.0

我的ISP有PHP 5.4.45所以我的目标是,尽管我在PHP 7.1中得到了相同的结果。本地开发环境中是否有任何可能导致此问题的内容?

2 个答案:

答案 0 :(得分:0)

请正确检查您的功能,您的功能必须正确 在php文件中

add_action("wp_ajax_submit_form_data", "new_submit_form_data" );
function new_submit_form_data(){
    if(isset($_POST['id'])){
        $id = $_POST['id'];
        // your code to manipulate data
    }
    die();
}

在jquery文件中

jQuery("#input-id").live("click", function(){
var id = jQuery(".textinput").val();
jQuery.ajax({
        method: "POST",
        url: ajaxurl,
        dataType:"json",  
        contentType: "application/json",
        data: {"id":id,action:"submit_form_data"},
        success: function(response){
            console.log(response);
        }
    });
}

之后查看响应并对响应数据执行任何操作。

答案 1 :(得分:0)

安装DesktopServer来替换MAMP解决了这个问题。它不像MAMP那样可配置,但它有效!