如何通过jQuery ajax调用访问JSON数据?

时间:2015-09-09 03:38:37

标签: javascript jquery json ajax

我想访问url并获取JSON响应,但我无法访问JSON数据,显示Uncaught SyntaxError:意外令牌:

我尝试以下代码

$(window).load(function () {
        retrivefun();

    });

    function retrivefun() {
        $.ajax({
            url: 'http://api.railwayapi.com/live/train/56700/doj/20150908/apikey/mdqjs5581"',
            data: {
                format: 'json'
            },
            error: function () {
                alert("Not Loaded");
            },
            dataType: 'jsonp',
            success: function (data) {
                alert("Successfully Loaded");
                debugger;
                console.log(data)
            },
            type: 'POST'
        });
    }
<script src="http://code.jquery.com/jquery-2.1.4.min.js" type="text/javascript"></script>

1 个答案:

答案 0 :(得分:0)

请尝试下面的代码段。我更新了你的AJAX呼叫错误处理部分。

&#13;
&#13;
$(window).load(function () {
        retrivefun();

    });

    function retrivefun() {
        $.ajax({
            url: 'http://api.railwayapi.com/live/train/56700/doj/20150908/apikey/mdqjs5581',
            data: {
                format: 'json'
            },
            error: function(xhr, status, error) {
                alert("response : "+xhr.responseText+"\n status: "+status+"\n error: "+error);
            },
            dataType: 'jsonp',
            success: function (data) {
                alert("Successfully Loaded");
                debugger;
                console.log(data)
            },
            type: 'POST'
        });
    }
&#13;
<script src="http://code.jquery.com/jquery-2.1.4.min.js" type="text/javascript"></script>
&#13;
&#13;
&#13;

每当您运行它时,请尝试弹出FireFox或Chrome浏览器的控制台和网络标签。好像你的API调用没有被正确授权加上从服务器发送的错误消息不正确JSON,因此AJAX调用正在给出一个parsererror作为状态(请参阅屏幕截图)。

FireFox网络开发者控制台标签: enter image description here

FireFox网络开发者网络标签: enter image description here

<强>更新
在URL之前如下 url: 'http://api.railwayapi.com/live/train/56700/doj/20150908/apikey/mdqjs5581

那是什么给了那个

  

身份验证错误

无论如何,如果您可以在浏览器的网络选项卡中查看响应,它会按如下方式获取响应: enter image description here

但浏览器的控制台选项卡仍显示以下内容: enter image description here

它仍然表示它无法处理响应。可能是服务器本身的错误。

提示:使用JSONLint

等JSON验证程序检查生成的RESPONSE

希望这个答案对其他人的OP有所帮助! 干杯!