Javascript jQuery-基于JSON响应数据的警报
我需要根据JSON响应中字符串的出现情况显示警报。 这是我的密码:Javascript jQuery-基于JSON响应数据的警报,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我需要根据JSON响应中字符串的出现情况显示警报。 这是我的密码: $.ajax({ method: 'POST', url: dataString2, data: dataString, headers: { "Authorization": "Basic " + btoa('' + Username + '' + ":" + '' + Password + '') }, success: function(jqXHR) {
$.ajax({
method: 'POST',
url: dataString2,
data: dataString,
headers: {
"Authorization": "Basic " + btoa('' + Username + '' + ":" + '' + Password + '')
},
success: function(jqXHR) {
if (jqXHR.responseJSON('ok')) {
alert('First Real Server Configured');
}
},
statusCode: {
406 : function() {
alert('There is an unexpected string in your data.\nFix the error and try again.');
},
401 : function() {
alert('Wrong username or password.');
}
},
});
});
以下是JSON响应:
{
"status":"ok"
}
HTTP响应代码为“200OK”,服务器响应的内容类型为:application/json
使用上述代码时,我得到:
未捕获类型错误:未定义不是函数
有什么想法吗?试试看
$.ajax({
method: 'POST',
url: "/echo/json/",
data: {json:JSON.stringify({status:"ok"})},
dataType: "json",
headers: {
"Authorization": "Basic "
+ btoa('' + "Username" + '' + ":" + '' + "Password" + '')
},
success: function(data, textStatus, jqXHR) {
// check `jqXHR.responseJSON` here
if (jqXHR.responseJSON.status === "ok") {
alert('First Real Server Configured');
}
},
statusCode: {
406 : function() {
alert('There is an unexpected string in your data.'
+ '\nFix the error and try again.');
},
401 : function() {
alert('Wrong username or password.');
}
}
});
JSFIDLE我找到了解决方案:
$.ajax({
type: 'POST',
url: dataString2,
data: dataString,
contentType: 'application/json',
headers: {
"Authorization": "Basic " + btoa('' + Username + '' + ":" + '' + Password + '')
},
success: function(data) {
status = data.status;
message = data.message;
if (status === 'ok') {
alert("First Real Server Configured Successfully");
}
if (status === 'err') {
alert(message);
}
},
statusCode: {
406 : function() {
alert('There is an unexpected string in your data.\nFix the error and try again.');
},
401 : function() {
alert('Wrong username or password.');
}
},
});
资料来源:
谢谢大家的帮助 好,什么是“非函数”?哪一行?代码的哪一部分未定义?
jqXHR
将是响应,而不是responseJSON
属性。要访问jqXHR
对象,请在success
处包含(数据、文本状态、jqXHR)
,然后在jqXHR.responseJSON
处访问jqXHR.responseJSON
@Juhana,如下内容:if(jqXHR.responseJSON('ok'){@Guest271314,但我只需要在字符串“ok”时显示警报在响应数据中存在。似乎当我使用与“ok”不同的字符串(但仍然是响应数据的一部分)时,警报不会弹出。例如,我的服务器响应是:{“status”:“err”,“message”:“Alteon无法创建指定的新条目。具有相同规范的条目已经存在。”}
当我使用时:`success:function(data,textStatus,jqXHR){//checkjqXHR.responseJSON
如果(jqXHR.responseJSON.status===“已经存在”){alert('Real Server已经存在');},警报不会显示。@UdiDahan如果可能,可以创建stacksnippets/fork JSFIDLE,包括js
,以演示?您可以在我使用的链接中看到IfjqXHR.responseJSON.data
,但我也像您编写的那样尝试了jqXHR.responseJSON.status
,但它不起作用。请参阅jsFIDLE上的控制台
“加载资源失败:服务器响应状态为404(未找到)=>fiddle.jshell.net/yym93j7y/show/alteon1.js”可以发布alteon1.js
的完整url
?它目前位于我的电脑本地,所以这有点问题。它似乎会弹出第一个警报,无论我在jqXHR.responseJSON.data中写什么。我写了jqXHR.responseJSON.data='bla',它仍然会弹出警报(我可以向你保证没有“bla”响应数据中的字符串)。