gpt4 book ai didi

javascript - jquery ajax 请求返回未定义

转载 作者:行者123 更新时间:2023-12-02 14:01:46 27 4
gpt4 key购买 nike

我试图让链接执行一个非常简单的请求,但我似乎无法弄清楚为什么我返回的内容是“未定义”。

当前该链接执行手动页面请求,但这是一个简单的订阅事情,我希望它不刷新页面(因此是preventDefault)。但如果 JS 不起作用或被阻止,链接应该执行正常的页面请求(两全其美?)。

这是捕获链接点击的 JS

  $('#subscribe-link').click(function(e)
{
e.preventDefault();
var type = $(this).data('sub');
$.post('/includes/ajax/subscribe-article.php', { 'type':type },
function(data)
{
alert(data.result);
if (data.result == 'subscribed')
{
alert('subscribe');
}
else if (data.result == 'unsubscribed')
{
alert('unsubscribe');
}
});
});

这是为其提供支持的 PHP:

if($_POST && isset($_SESSION['user_id']) && $_SESSION['user_id'] != 0)
{
if (isset($_POST['type']))
{
if ($_POST['type'] == 'subscribe')
{
echo json_encode(array("result" => "subscribed"));
return;
}

if ($_POST['type'] == 'unsubscribe')
{
echo json_encode(array("result" => "unsubscribed"));
return;
}
}
}

现在,我已经检查了“数据”本身返回的内容,这是:

{"result":"unsubscribed"}

这是正确的,我不确定这次我错过了什么。

最佳答案

由于变量 data 包含预期结果的 JSON 表示形式,因此它显然是一个字符串。然而,您尝试将该字符串中包含的信息作为对象进行访问。为此,您首先需要通过解码返回的 JSON 从字符串创建一个对象:

var myData = JSON.parse(data);
alert(myData.result);
...

关于javascript - jquery ajax 请求返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40368860/

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