如何调试ajax请求错误?

cai*_*ci2 8 javascript ajax jquery android cordova

我正在尝试获取一个JSON,在这里托管在本地服务器上,但由于某种原因它不起作用.如果我在浏览器上点击我的网址,它会正确返回Json,如果我使用其他网址,我会获得一些数据.

我原来的getJson方法:

的getJSON:

$.getJSON(url, 

                    function(data) {
                        console.log('got something'); 
                        alert(data);    

                    });
Run Code Online (Sandbox Code Playgroud)

现在我想看看究竟出了什么问题.我把它重写为Ajax请求,在我的错误回调jqxhr给了我很多我不理解的东西.我能获得有关此错误的更多详细信息吗?

TextStatus 价值是 "error"

errorThrownnull

    $.ajax({
                  url: url,
                  dataType: 'json',
                  success:  function(data) {
                        console.log('got something'); 
                        alert(data);    
                        },
                error: function(jqxhr,textStatus,errorThrown)
                    {
                        console.log(jqxhr);
                            console.log(textStatus);
                            console.log(errorThrown);                               

                            for (key in jqxhr)
                                alert(key + ":" + jqxhr[key])                                                                 
                            for (key2 in textStatus)
                                alert(key + ":" + textStatus[key])
                            for (key3 in errorThrown)
                                alert(key + ":" + errorThrown[key])

                   //<--- All those logs/alerts, don't say anything helpful, how can I understand what error is going on? ---->

                }});
Run Code Online (Sandbox Code Playgroud)

最后,我应该回来的json是

[{"message": "login failed"}]
Run Code Online (Sandbox Code Playgroud)

我不能使用firebug,chrome控制台或任何其他开发工具,因为这是一个使用Phonegap开发的移动应用程序!

小智 6

我将把我的评论放在答案表单中,它不是解决问题的方法,但它是解决jQuery Ajax各种返回问题的好方法.

在这种情况下,当您请求某种数据类型时,dataType: 'json'您正在请求特定类型的数据.如果未返回该特定dataType,则将传递给错误函数.

如果您的错误消息未提供可解释您的问题的信息,请尝试请求更友好的dataType.这样您就可以看到您的请求实际返回的内容.如果它的数据不是你请求的dataType,那么这就是你的问题,你可以从那里开始工作.

dataType喜欢htmltext将非常开放,为您提供从请求的网址返回的确切数据,您可以从那里解决您的问题.

希望它有所帮助.