jQuery Ajax调用似乎失败但文件存在

时间:2014-08-01 23:31:52

标签: jquery ajax

我有以下jQuery代码对这个特定文件进行AJAX调用' /errorData/errorMessage.json'在我的服务器中,然后从不调用.done函数。

文件存在,我仔细检查了URL,我基本上输入了URL:localhost/../errorData/errorMessage.json,它显示了这个json文件的内容。

我甚至检查了apache2日志文件并且错误没有文件file doesnt exist我也检查了firefox调试器窗口它没有说GET失败。

当我从不同的服务器运行它时,此代码有效,但由于我将其移动到其他服务器,因此它不再起作用。

function getErrorMessage()
{
    $.ajax({
        url: "../errorData/errorMessage.json",
        cache: false
    })
    .done(function( data ) 
    {
        if(isEmpty(data) || isBlank(data)) {    
            $('.panel-danger').hide("fast")
            //audio.stop();
        }
        else {
            $('.panel-body').html(data);
            $('.panel-danger').show("fast")
            //audio.play();
        }   
    });
}

$(document).ready(function(){

    setInterval(getErrorMessage,2000);
    getErrorMessage();
}); 

3 个答案:

答案 0 :(得分:2)

您需要将数据类型指定为JSON。根据{{​​3}},您可以use $.getJSON

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

加载JSON。

希望有所帮助

答案 1 :(得分:0)

您无法在网址中使用../。它不像你期望的那样工作。您需要拥有完整的绝对URL或从根开始使用/并包含剩余路径。例如

http://www.example.com/path/to/my/file.json

或从根开始:

/path/to/my/file.json

答案 2 :(得分:0)

我发现了这个问题。使用$.ajax时,如果文件的扩展名为.json,则无效。它适用于.html扩展名。