Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-基于JSON响应数据的警报_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Javascript jQuery-基于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) {

我需要根据JSON响应中字符串的出现情况显示警报。 这是我的密码:

$.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){//check
jqXHR.responseJSON
如果(jqXHR.responseJSON.status===“已经存在”){alert('Real Server已经存在');},警报不会显示。@UdiDahan如果可能,可以创建stacksnippets/fork JSFIDLE,包括
js
,以演示?您可以在我使用的链接中看到If
jqXHR.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”响应数据中的字符串)。