Javascript 为什么访问Ajax响应变量会使代码崩溃?
我有以下成功进行Ajax调用的客户端脚本:Javascript 为什么访问Ajax响应变量会使代码崩溃?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下成功进行Ajax调用的客户端脚本: $.ajax({ type: "GET", url: "Register?handler=GeneratePassword", contentType: "application/json", dataType: "json", success: function (response) { var resp = response; var pwd = response.passwo
$.ajax({
type: "GET",
url: "Register?handler=GeneratePassword",
contentType: "application/json",
dataType: "json",
success: function (response) {
var resp = response;
var pwd = response.password;
if (response.ok === true) {
$("#genPwd").val(response.password);
}
},
failure: function (response) {
alert(response);
}
});
当我在直线上放置断点时:
var resp = response;
然后resp
是{ok:true,密码:“OkF6”}
。当我尝试并执行以下行时:
var pwd = response.password;
函数只是退出,没有错误,没有异常,什么都没有。它完全停止了。我的这段Ajax代码有什么问题?在访问值之前,先解析对
json
对象的响应
var resp = JSON.parse(response);
使用浏览器的开发工具,在代码上添加一个断点(或在soccess回调中添加一个
调试器;
行),然后手动运行该行以查看是否有错误,逐步检查每一行。它应该可以正常工作,我想可能是其他地方发生了一些与taht代码无关的事情。尝试console.log(typeof response)
,很可能是string
。在这种情况下,您需要将其解析为JSON(参见@Shahzeb的答案)。如果是字符串,则响应。ok
未定义,因此跳过If
,函数结束。