Ajax请求失败了吗?

时间:2015-02-03 01:07:09

标签: javascript jquery ajax

我正在尝试从api中检索json数据。 它一直在失败,但是当我查看Firebug的Net选项卡时,我可以看到GET请求已执行并返回了正确的数据。我做错了什么或有没有人提供如何调试的提示?

编辑:已更改为dataType json且错误状态代码为0

由于

    $.ajax({
        url: 'http://localhost:55894/api/Test/All',
        data: {
            format: 'json'
        },
        error: function () {
            alert('Error');
        },
        dataType: 'jsonp',
        success: function (data) {
            alert('Ok');
        },
        type: 'GET'
    });

3 个答案:

答案 0 :(得分:1)

根据您提供的信息,它失败的原因是您没有跨域访问策略设置。因为您使用不同的端口来托管网站以及您遇到此问题的API。您可以使用适当的安全设置设置crossdomain.xml,也可以将API和Web服务器都移动到同一端口。

有关详细信息,请查看此信息:http://en.wikipedia.org/wiki/Same-origin_policy

答案 1 :(得分:0)

你可以这样试试:

$.ajax({
    type: 'GET',
    url: 'url api here',
    beforeSend: function() {
    },
    success: function(data) {

    },
    error: function(xhr) { // if error occured

    },
    complete: function() {

    },
    dataType: 'json'
});

答案 2 :(得分:0)

JSONJSONP不同。如果您使用的是JSONP,则服务器端必须准备好支持它。您似乎没有使用JSONP

因此,只需将dataType更改为'json'即可,并尝试检索json数据"。