gpt4 book ai didi

Javascript 从 AJAX 响应中读取 JSON 结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:35 24 4
gpt4 key购买 nike

我有一个 javascript 文件,它对服务器上的 php 文件进行 AJAX 调用,返回 JSON 编码数据。 PHP 文件可以返回成功或失败,具体取决于大约一打不同的消息,如下所示:

if ( something here ) {
if( something else here ) {
if( more tests here ) {
$response['success'] = 'Successfully did something.';
} else {
$response['success'] = 'Successfully made this work';
}
} else {
$response['error'] = 'Failed to make the donuts.';
}
} else {
$response['error'] = 'I need more information!';
}
echo json_encode($response);
exit;

我在前端有 javascript/jquery,它正在检查响应失败条件并显示警告框并执行其他一些相关操作。

$.post(ajaxurl, data, function(response) {
if( response.hasOwnProperty("success") ) {
if( $(this).is( ":checked" ) ) {
$(this).removeAttr( "checked" );
} else {
$(this).attr( "checked", "true" );
}
alert( response["success"] );
} else {
alert( "Sorry, something went wrong. \nError: " + response["error"] );
}
});

问题是,无论我如何检查成功条件,它总是显示带有 response['error'] 的错误消息 undefined 我试过测试 typeOf response['success'] != "undefined" 和许多其他方法来查看是否设置了成功值,但似乎没有任何效果。我收到的回复是,当我使用 console.log 时,它看起来像这样:{ "success", "Successfully did something."} 我在阅读消息时做错了什么?

最佳答案

您需要parse使用前的 JSON 响应,

$.post(ajaxurl, data, function(response) {
var response=JSON.parse(response);
//then your code
});

您可以在 AJAX 调用中将数据类型属性用作 json,例如:

$.post(ajaxurl, data, function(response) {
//your code
}, "json");

关于Javascript 从 AJAX 响应中读取 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21771665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com