JQuery / AJAX无法从PHP文件获取响应

时间:2019-03-04 17:24:30

标签: javascript php jquery ajax wordpress

我正在尝试为我的wordpress网站运行服务器端python脚本。我可以在php函数中调用python文件,并以简码形式在网站上运行它。因此,php文件正在工作。我遇到的问题是构建我的JQuery并从php文件获取响应。我正在尝试进行hello_world设置以调试问题

AJAX查询:

<script >

function myFunction() {
  alert("Testing button");
}

function HelloWorldShortcode() {
    jQuery(document).ready( function($) {

        $.ajax({
            dataType: 'json', 
            method: 'POST',
            url: "http://localhost/wp-content/helloworld.php",
            data: {
                action: 'helloworld'
            },
        error: function (data) {
            alert("bad");
        },
        success: function (response) {
            alert(response);
        }
        });

    })
}

和php文件:

<?php # -*- coding: utf-8 -*-

ini_set('display_errors', 1);

function hello_world() {

    $test = 'hello';
    return $test;

}

if (isset($_POST['helloworld'])) {
    return hello_world();
}

我也尝试使用GET而不是POST。当我在浏览器中访问php文件时,我没有收到任何错误,而到达ajax查询的success部分,因为我没有收到任何错误消息。如何访问php文件中的hello_world函数并显示输出?

谢谢

2 个答案:

答案 0 :(得分:2)

您正在使用参数的值,而不是参数本身...

if (isset($_POST['action'])) {
    echo hello_world();
    // Or json_encode(hello_world()); for returning an Array 
}

if ($_POST['action'] == 'helloworld') {
    return hello_world();
    // Or json_encode(hello_world()); for returning an Array 
}

答案 1 :(得分:1)

您将执行以下操作:

if (isset($_POST['helloworld'])) {
    echo hello_world();
    // Or json_encode(hello_world()); for returning an Array 
}