我有以下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();
});
答案 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
扩展名。