从PHP返回JSON,将JSON转换为javascript数组,从AJAX调用返回数组

时间:2014-04-17 20:34:35

标签: javascript php html ajax json

我正在开发一个项目,它使用一个名为AjaxRequest的函数来处理我所做的所有AJAX请求。我在提出请求方面没有任何问题,但是将请求恢复是问题并将其放在我想要的位置上,这会让您感到压力。

HTML BIT

<body onLoad="calling();">
<div id="status">Status: </div>
</body>

JAVASCRIPT BIT

function calling() {
    var answer = ajaxRequest("testing", "test.php", "test=test");

    document.getElementById("status").innerHTML += answer[1];
    document.getElementById("status").innerHTML += " " + answer[3];
}

function ajaxRequest(app, location, credentials) {  
var extras = ""; 
if(credentials === "" || credentials) { 
        extras = "&" + credentials; 
    }

    var ajax = ajaxObj("POST", location);
    ajax.onreadystatechange = function() {
        if(ajaxReturn(ajax) == true) {
            var obj = JSON.parse(ajax.responseText);
            var arrayObj = [];
            for(var i in obj) { arrayObj.push([i, obj[i]]); }
            return arrayObj;
        }
    }
    ajax.send("app=" + app + extras); 
}

还有另外两个正在运行的函数:ajaxObj和ajaxReturn但我排除了这些因为它们不是问题。此外,我正在尝试使ajaxRequest成为一个有效的函数,可以被多个应用程序使用,而无需在多个位置重写所有代码。在实际使用ajaxRequest之前获取所有错误处理。

PHP BIT

<?php
if($_POST['app'] == "testing") {
    $hey = array('success' => 1, 'message' => 'Successful');
    echo json_encode($hey);
    exit();
}
?>

我使用调用作为执行所有错误处理的javascript函数,这只是我整个项目的基础,但是我尝试从php获取JSON并将其转换为数组并且问题是返回数组进入调用。我尝试在页面上显示信息,但没有任何作用。

我不打算在我的项目中使用任何JQuery,所以我想在这段代码中排除使用它。

1 个答案:

答案 0 :(得分:1)

如果需要,可以在发回json之前设置标题。

header('Content-Type:application / json');

通常你不需要它,但它会告诉你的javascript它是json,并且数组将在javascript对象中进行转换。它适用于Jquery,但我认为它没有太多工作