我正在尝试通过进行 Ajax 调用来收集返回 .php 文件的字符串。但它总是会成功,但是它返回的数据总是空的。这是为了什么??我正在学习,我不太清楚自己做错了什么......
我试过的代码:
jQuery.ajax({
url: '/administrator/components/views/response.php',
method: "POST",
dataType: "json",
data: {
request: result.id
}
}).success(function (data) {
console.log("Success. Data: "+ data);
}).error(function (error, responseText) {
console.log("Error. "+ error);
});
response.php 文件仅包含:
return "Texto de prueba";
实际上我需要 .php 文件进行一些计算并返回它们,但首先我需要解决它甚至不返回一些示例的问题......
当您通过 Ajax 向服务器发起请求时,需要牢记的重要一点就是
dataType
您所指示的内容。如果您指出它是
json
,那么无论服务器上发生什么,来自服务器的响应应该只是一个 json 结果,因为如果您发送另一种类型的响应,代码将无法按预期工作。您的程序可能如下所示:
JS/jQuery
我已经利用了
done
andfail
,因为success
anderror
自从 jQuery 3 以来就被弃用了。PHP
在这里,我创建了一个变量
$arrRespuesta
,它将收集有关所发生结果的信息,最后我将以 json 格式打印该变量,正如 Ajax 所期望的那样。另一个重要的事情是放置一个带有数据类型和编码的标题。如果不存在,则代码可能会失败,例如,如果数据中有特殊字符会导致 json 无效。
请注意,在此示例中,返回的数组将始终具有一个键
status
,并且在done
Ajax 中我添加了另一个键console.log
,以表明您可以通过其属性访问 json 键中的消息status
:)。我希望它对你有用。
我正在向您发送另一种处理 ajax 请求的方式......对我来说,也许更舒服。
“index.php”不要忘记添加jquery。
“响应.php”
$.post("response.php?op=XXX" 你在整个项目中发送你想要的请求。
switch ($_GET['op']) { case XXXX: 收集你发送的变量,然后继续为每个发送的请求开发代码 break; }