Javascript 传递JSON请求时,ajax调用失败

Javascript 传递JSON请求时,ajax调用失败,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在调用fallowing函数 function checkUser(){ $.ajax({ type: "POST", url: "assets/json/login.json", dataType: 'json', data: {name:"XYZ",status:'A'}, success: function(data) { obj = J

我正在调用fallowing函数

function checkUser(){
    $.ajax({
        type: "POST", 
        url: "assets/json/login.json",
        dataType: 'json',
        data: {name:"XYZ",status:'A'},          
        success: function(data)
        {
            obj = JSON.parse(data);
            alert(obj.status);
            if(obj.status == 200)
            {
                window.location='dashboard.html'
            }else
            {
                    $("#error").html(obj.msg);
                    return false;
            }

        },

     error: function(errorThrown){
            alert("There is an error with AJAX!" + errorThrown);
    } 
});

}
作为响应,调用error函数。Json文件包含状态和消息,如{status:“200”,msg:“SUCCESS”}

编辑 我更正了我的json。现在它看起来像这样{“status”:“200”,“msg”:“SUCCESS”} 现在调用成功函数。但是它在obj=JSON.parse(data)上给出了以下错误:


这里的响应已经是json格式的,所以我认为不需要解析它。但是如何显示状态呢?

您希望数据类型中有一个JSON。您将收到一个JSON。所以不需要解析它。删除
JSON.parse(数据)

将响应键作为字符串有帮助吗?而不是

{status:"200",msg:"SUCCESS"}
你能试试吗

{"status":"200","msg":"SUCCESS"}

如果您为什么要对本地资产执行
POST
,请尝试
parseInt(obj.status)==200
obj.status==200
内部
?大多数POST请求都指向本地URL。向静态文件发出POST请求可能会很奇怪,但假设URL仅仅因为末尾有
.json
而用静态文件处理,这种假设并不总是正确的。我不知道你在说什么。大多数“ajax”POST请求肯定不会转到本地URL。我尝试了它。但是它调用了错误函数而不是成功
login.json
究竟返回什么?尝试
console.log
response.Json文件将返回如下状态{status:200}首先,我必须发布我的数据,如果事务成功完成,那么我将得到该文件的响应。所以我认为这对这个案子不起作用,所以也许这就是你做错的地方。您正在获取一个json文件,对吗?这只是数据。不是代码。为什么要将数据传递给其他数据?它只是一个json,它不会处理您传递给它的数据。我能理解,它是一个PHP文件还是什么,但将数据传递给json文件毫无意义。是的。JSON属性名称必须是字符串,而不是标识符<代码>{status:“200”,msg:“SUCCESS”}
不是JSON,因此它无法解析JSON并触发错误处理。解决这一问题的正确方法是使用JSON库生成JSON,而不是手动添加引号字符。如果我按照上面的方式编写,那么JSON数据的第1行第2列将给出SyntaxError:JSON.parse:unexpected字符error@Aanshi-那是另一个问题。您已经成功地使它停止命中error函数,而是调用success函数。该死,我没有注意到这是一个无效的json。我应该得到我的否决票:)@Aanshi-jQuery将为您解析JSON,传递到success函数的值是这个结果,而不是JSON的原始字符串。因为它不是原始的JSON,所以不能对其进行解析。
{"status":"200","msg":"SUCCESS"}