我正在开发一个项目,该项目使用一个名为 AjaxRequest 的函数,该函数处理我发出的所有 AJAX 请求。我提出请求没有任何问题,但是取回请求是问题所在,并且将其放置在页面上我想要的位置变得很有压力。
HTML 位
<body onLoad="calling();">
<div id="status">Status: </div>
</body>
JAVASCRIPT 位
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 位
<?php
if($_POST['app'] == "testing") {
$hey = array('success' => 1, 'message' => 'Successful');
echo json_encode($hey);
exit();
}
?>
我使用调用作为执行所有错误处理的 javascript 函数,这对于我的整个项目来说只是基本的,但是我尝试从 php 获取 JSON 并将其转换为数组,问题是将数组返回到打电话。我尝试在页面上显示信息,但没有任何效果。
我不想在我的项目中使用任何 JQuery,因此我想排除在这段代码中使用它。
最佳答案
如果需要,您可以在发回 json 之前设置 header 。
header('内容类型:application/json');
通常你不需要它,但它会告诉你的javascript它是json,并且该数组将被转换为一个javascript对象。它可以与 Jquery 一起使用,但我认为不使用 Jquery 也可以工作
关于javascript - 从 PHP 返回 JSON,将 JSON 转换为 javascript 数组,从 AJAX 调用返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23142934/