jQuery.ajax()v1.5为json数据返回"parsererror"

Cla*_*lor 7 php ajax jquery json

我有这个函数从列表中获取服务器ID.该函数始终返回"parsererror".我已经查看了返回的JSON数据,但我似乎无法让它工作,因为jQuery已经在v1.5中重写了ajax.

function server_id()
{
    $.ajax({
        type: "GET",
        url: "http://localhost/server_list.php",
        dataType: "json", 
        success: function(data, status) {
             alert(status + "\n\n" + data.server_id);
        },
        complete: function(data, status){
                  alert(status);
        }
    });

}
Run Code Online (Sandbox Code Playgroud)

server_list.php

    header('Content-type: application/json');

    $output['server_id'] = '123';
    print json_encode($output);
Run Code Online (Sandbox Code Playgroud)

在firebug Net >> XHR中,它将其作为JSON读取,因为它会弹出选项卡,而Response选项卡会显示下面的内容.

{"server_id":"123"}
Run Code Online (Sandbox Code Playgroud)

我也尝试过如下设置内容类型标题,但没有运气.

Content-type: application/json
Run Code Online (Sandbox Code Playgroud)

更新

如果从http://bassistance.de/jquery-plugins/jquery-plugin-validation docs.jquery.com/Plugins/Validation v1.7加载验证插件,我只会得到"parsererror" .

如果添加插件,即使设置为false或者不包含jsonp的parms,jquery也会自动将jsonp回调添加到查询字符串中.很奇怪

有关如何修复的任何想法?

谢谢

phi*_*hag 0

您似乎想要定期 json 通信(dataType是“json”而不是“jsonp”并server_list.php发送 json),但您正在设置jsonp选项。删除jsonpjsonpcallback线。设置jsonpfalse并不意味着您禁用它!

当这两行被注释掉时,一切似乎都工作正常