4

好的,我正在尝试使用以下 jQuery 代码从 URL 获取 JSON 文件。

$.ajax({
    url: 'http://example.com/example.json',
    dataType: 'json',
    type: 'GET',
    async: true,
    cache: true,
    crossDomain: true
});

但是,当请求触发时,Firebug 会指出发生了错误,但没有告诉我它是什么。

我可以毫无问题地访问浏览器中的 URL,并且 JSON 完全有效(根据http://www.freeformatter.com/json-validator.html)。

有什么建议么?

编辑:

好的,更改contentTypetojsonp让我更进一步。我的 JSON 看起来像这样(http://pastebin.com/hSAP30zv),但 Firebug 说:

SyntaxError: invalid label
"item" : {
^

还有什么建议吗?

4

2 回答 2

4

此错误处理程序可能会帮助您:

$.ajax({
    url: 'http://example.com/example.json',
    dataType: 'json',
    type: 'GET',
    async: true,
    cache: true,
    success: function (html) {
        alert('successful : ' + html);
    },
    error: function (jqXHR, exception) {
        if (jqXHR.status === 0) {
            alert('Not connect.\n Verify Network.');
        } else if (jqXHR.status == 404) {
            alert('Requested page not found. [404]');
        } else if (jqXHR.status == 500) {
            alert('Internal Server Error [500].');
        } else if (exception === 'parsererror') {
            alert('Requested JSON parse failed.');
        } else if (exception === 'timeout') {
            alert('Time out error.');
        } else if (exception === 'abort') {
            alert('Ajax request aborted.');
        } else {
            alert('Uncaught Error.\n' + jqXHR.responseText);
        }
    },
    crossDomain: true
});
于 2013-05-05T10:26:33.697 回答
1

尝试处理函数失败的错误:

$.ajax({
    url: 'http://example.com/example.json',
    dataType: 'json',
    type: 'GET',
    async: true,
    cache: true,
    crossDomain: true
}).fail(function(jqXHR, textStatus) {
  alert( "Request failed: " + textStatus );
});
于 2013-05-05T10:26:06.420 回答