JavaScript代码未正确检查ajax请求
JavaScript code not checking ajax request properly
我有一个星期四的案例,我想知道为什么这不起作用。
问题:即使页面成功返回,我也无法从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);
}
});
并且CCD_ 1将调用该CCD_ 2页面:
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
,即使响应中显示了一个包含用户名的数组
请帮忙?
edit:我应该添加我在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"开头的字符串。get方法对返回对象进行了明智的猜测。当它从php接收到一个字符串时,它无法将其转换为Jason或xml,因此它认为dataSG只是字符串。Json_encode未成功执行此操作。您必须将php输出格式化为类似"[‘a’,‘b’]"的格式,然后Ajax才能成功地将其转换为JavaScript数组。
试试这个:
...
success: function(dataSG) {
dataSG = JSON.parse(dataSG);
...
相关文章:
- JavaScript代码未正确检查ajax请求
- 如何使用jQuery可编辑插件检查ajax是否成功完成
- 正在检查ajax响应中的错误数据
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- 如何根据字符串检查ajax响应
- 当类型设置为JSON时,如何检查AJAX响应字符串
- 如何检查AJAX请求是否已完成
- 检查 ajax 请求是否在大多数情况下失败
- 检查 Ajax 请求
- 如何检查ajax或jquery中是否存在url或网页
- 如何检查Ajax返回的JSON的正确性
- 有没有任何选项可以让我们检查AJAX请求的来源
- 检查ajax调用的html响应中是否存在类或id
- 强制Chrome检查$.Ajax调用结束
- 检查ajax中的成功和错误
- 检查ajax页面更新与javascript上的特定url (chrome扩展)
- 如何检查ajax .load调用是否已加载
- 日期选择器javascript和电子邮件检查ajax java脚本错误
- 检查.ajax请求后加载的所有图像
- 检查ajax调用是否完成