使用JSON

时间:2016-02-15 20:12:15

标签: javascript jquery ajax

我正在尝试使用JSON显示来自外部API here的信息。我有一个名为default.asp的文件。在里面我有我的html和一个带有这个功能的脚本:

$.ajax({
    url: 'http://zipitprod.com.leaf.arvixe.com/api/event?$orderby=StartDateUTC,+Distance&$top=50&day=7&dist=100&lat=40.1273&long=-82.9182',
    type: 'GET',
    dataType: 'JSON',
    success: function (response) {
        alert("Success: "+response.responseText);                       
    },
    error: function (jqXHR, exception) {
            var msg = '';
            if (jqXHR.status === 0) {
                msg = 'Did not connect.\n Verify Network.';
            } else if (jqXHR.status == 404) {
                msg = 'Requested page not found. [404]';
            } else if (jqXHR.status == 500) {
                msg = 'Internal Server Error [500].';
            } else if (exception === 'parsererror') {
                msg = 'Requested JSON parse failed.';
            } else if (exception === 'timeout') {
                msg = 'Time out error.';
            } else if (exception === 'abort') {
                msg = 'Ajax request aborted.';
            } else {
                msg = 'Uncaught Error.\n' + jqXHR.responseText;
            }
                alert("Error: "+msg);
            },
        });

由于某种原因,我得到状态代码0.我不应该使用JSON / AJAX或我的功能有问题吗?我已经搜索了状态代码0,我发现它可能会因拼写错误或无法访问的DNS而失败。它应该是公开的,我使用Postman应用程序来帮助测试它在那里工作。

1 个答案:

答案 0 :(得分:0)

由于Same Origin Policy,您的API调用失败,这是一种安全措施,可以阻止恶意脚本执行令人讨厌的事情,例如在其他网站上劫持您的会话(请参阅:XSS和{{ 3}})。

您仍然可以从请求的来源获取数据,但是您必须在服务器端执行此操作,并允许用户从您的主机请求数据。

附注:您正在从您正在制作的API调用中请求CSRFXML是一种使用javascript对象之类花括号的格式:{{1 } (因此称为JavaScript Object Notation)