json文件和$ .getJSON

时间:2012-08-18 10:15:05

标签: php json jquery

我试图使用$ .getJSON来获取json文件:

$.getJSON('json/resume.json', function(data){
    alert('success');
});

但警报信息未来,我试过:

$.ajax({
    type: 'POST',
    url: 'json/download.php',
}).success(function(){alert("hello")});

在这种情况下,警报将以HELLO的形式出现。

我完全陷入困境。 请帮忙

由于

4 个答案:

答案 0 :(得分:2)

您正在对两个不同的网址使用两个不同的请求,并将它们比较为相同,第一个是json / resume.json,第二个是POST到json / download.php。第一次调用失败的唯一原因是其中之一:

json/resume.json does not exist
json/resume.json does not contain valid json

您需要设置全局ajax错误处理程序,以便从getJSON获取错误,或者通过类似的ajax运行相同的json查询:

$.ajax({
    url: 'json/resume.json',
    type: 'GET',
    dataType: 'json'
    success: function(response) {
        console.log(response)//should come into console anyway 
    },
    error: function(request, type, errorThrown) {

        message = (type=='parseerror') ? "json is invalid" : "(" + request.status + " " + request.statusText + ").";
        alert("error with request: "+message);
    }
})

答案 1 :(得分:0)

第一个是GET,第二个是POST - 您是否在浏览器中使用开发工具并检查NET选项卡是否存在服务器500错误?

如果您的服务器方法只接受那些麻烦的POST。

答案 2 :(得分:0)

您的服务器端脚本未返回有效的JSON,或未将Content-Type响应标头设置为application/json

因此,在尝试使用$.getJSON使用脚本之前,请确保满足这两个条件:

<?php
    header('Content-Type: application/json');
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    echo json_encode($arr);
?>

答案 3 :(得分:0)

我认为你应该检查你的getJSON()中发生的错误,例如

$.getJSON('json/resume.json', function(data){
    alert('success');
}).error(function(e, m) { alert('error'); console.log(m); });