gpt4 book ai didi

JavaScript 代码未正确检查 ajax 请求

转载 作者:行者123 更新时间:2023-11-28 07:26:58 26 4
gpt4 key购买 nike

我有一个星期四的案例,我想知道为什么这不起作用。

问题:即使页面成功返回数组的值,我也无法从 AJAX 请求返回数组的值。

所以,这是我的 AJAX 请求:

    $.ajax({
type: "GET",
url: "get-sendgrid-info.php?username=" + emailToCheck,
success: function(dataSG) {
console.log("Length: " + dataSG.length + " Username: " + dataSG[0].username);

if (dataSG[0].username) {
console.log('CURRENTLY IN SEND GRID!');
$(".sgstatus").html("<div style='font-weight:bold;color:green;'>CURRENTLY IN SENDGRID</div>");
}else{
console.log('NOT IN SEND GRID!');
$(".sgstatus").html("<div style='font-weight:bold;color:red;'>NOT IN SENDGRID</div>");
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest);
console.log(errorThrown);
}
});

并且 dataSG 将调用 php 页面:

    if ($email) echo json_encode($data);
}
$stmt->close();
$mysqli->close();

它将输出如下内容:

Array
(
[0] => stdClass Object
(
[username] => sample@email.net
[email] => sample@email.net
[active] => true
[first_name] => John
[last_name] => Doe
[address] => 123 Fake Street
[address2] => Suite117
[city] => Denver
[state] => CO
[zip] => 12345
[country] => US
[phone] => 555-555-5555
[website] => http://website.com
[website_access] => true
)

)
1

(是的,甚至是 1)。

所以,当我在 AJAX 请求后尝试这个时

        if (dataSG[0].username) {
console.log('CURRENTLY IN SEND GRID!');
$(".sgstatus").html("<div style='font-weight:bold;color:green;'>CURRENTLY IN SENDGRID</div>");
}else{
console.log('NOT IN SEND GRID!');
$(".sgstatus").html("<div style='font-weight:bold;color:red;'>NOT IN SENDGRID</div>");
}

即使响应显示了一个数组,其中清楚地显示了用户名,但我总是得到NOT IN SENDGRID

请帮忙?

编辑:我应该补充一点,我在 IIS 服务器上。

编辑:响应控制台显示:

Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}abort: 
...

Object
create-email.php:2629 SyntaxError: Unexpected token A {stack: (...), message: "Unexpected token A"}message: "Unexpected token A"stack: (...)get stack: function () { [native code] }set stack: function () { [native code] }__proto__: Error

最佳答案

我认为原因是您的 pho 脚本正在回显以“Array”开头的字符串。 Ajax .get 方法对返回对象进行智能猜测。当它从 php 接收到一个字符串时,它无法将其转换为 Jason 或 xml,因此它认为 dataSG 只是字符串。 Json_encode 没有成功完成。您必须将 php 输出格式化为“['a','b']”之类的内容,然后 Ajax 才能成功将其转换为 JavaScript 数组。

关于JavaScript 代码未正确检查 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29542566/

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