获取getJSON请求失败

3
当单击按钮时,我有一个包含一些数据的json文件要附加到html文档中的div中:
html:
<div class="json"></div>
<button id="one"></button>

这里是 JavaScript:

function one(){
    $("#one").click(function(){
        $.getJSON('one.json',function(data){
            alert("success");       
        })
        .done(function() { alert('getJSON request succeeded!'); })
        .fail(function() { alert('getJSON request failed! '); })
        .always(function() { alert('getJSON request ended!'); });
    });
}

$(document).ready(function() {
   one();
});

one.json文件与js文件在同一目录下。当我点击按钮时,弹出窗口显示“getJSON请求失败”……错在哪里?


1
HTML文件也在同一个目录下吗?尝试使用根相对调用,例如“/folder/one.json”。 - RononDex
HTML和JS文件的路径是什么?它们是否在不同的目录中? - Arun P Johny
这个问题很难回答,可能是任何原因!文件名错误、路径错误、没有运行Web服务器、或者完全是其他原因。 - adeneo
1
请返回已翻译的文本:或格式错误的JSON:https://dev59.com/questions/Mm025IYBdhLWcg3wKCb-#6186905 - Salman A
5个回答

2
请看下面的代码是否有效:
 $.getJSON('/YourDirectory/one.json',function(data){
            alert("success");       
        })

1
如果您的HTML是从URL打开的。
localhost:80/project/test.html

那么JSON路径将是:
localhost:80/project/one.json

所以确保HTML和JSON在同一个文件夹中。

1

好的,要么在getJSON方法中删除成功回调函数,并使用.done.fail,要么只使用成功回调函数。

 function one(){
   $("#one").click(function(){
    $.getJSON('path/to/one.json')
    .done(function() { alert('getJSON request succeeded!'); })
    .fail(function() { alert('getJSON request failed! '); })
    .always(function() { alert('getJSON request ended!'); });
   });
}

$(document).ready(function() {
  one();
 });

1

$.getJSON()的参数是一个URL,用于获取JSON数据,而不是文件路径。

$.getJSON('/one.json', function (data) { ... });

或者

$.getJSON('http://localhost:1234/one.json', function (data) { ... });

one.json文件的URL复制到浏览器地址栏中。如果浏览器返回JSON内容,则可以在$.getJSON()调用中使用该URL。


1

您的Ajax请求将查找当前页面的url,因此如果您在:

  • mysite.com/index.html,它将查找mysite.com/one.json

  • mysite.com/category/index.html,它将查找mysite.com/category/one.json

如果您有现代浏览器,可以打开开发者控制台查看实际请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接