jQueryAJAX调用在导致parseerror的页头之前返回结果


jQuery AJAX call returns results before page headers resulting in parseerror

我正试图使用JSON创建一个简单的AJAX调用,但结果总是出现解析错误,当我检查resultText时,它显示了整个页面的源代码,JSON响应在页眉上方显示成功。

这是我的AJAX调用,其中#class是一个包含值的选择框。

$("#class").change( function () {
            if($('#class').val().length > 0){
                    $.ajax({
                        type: "GET",
                        url: "http://192.168.0.9/ajax",
                        data: 'class_id=' + $("#class").val(),
                        datatype: 'json',
                        async: 'true',
                        beforeSend: function() {
                            alert("Before send!");
                        },
                        success: function(result){
                           if (result.status){
                                $('#result').html(result);
                         } else {
                            alert('request unsuccessful!'); 
                         }
                        },
                        complete: function() {
                            alert("Complete!");
                        },
                            error: function (request,error) {
                             alert('A jQuery error has occurred. Status: ' + error +':'+ request.responseText);                           
                             $("#result").html(request.responseText);  

                        }
                    });                   
            } else {
                alert('Please make a selection');
            }           
            return false; 
            }); 

这是我的PHP函数,它返回结果

$result = array();
    $result['status'] = "success";
    $result['message'] = "Types";
    header("Content-Type: application/json; charset=utf-8", true);
    echo json_encode($result);

最后,这是我在错误警报中得到的响应:

A jQuery error has occurred status:parseerror
{"status":"success", "message":"Types"}<!DOCTYPE html>
<html>
...rest of my page from where the request was sent

我希望这只是一个简单的错误,有人能告诉我我做错了什么?

也许您的参数应该以JSON格式传递:

data: "{'class_id':'" + $("#class").val() + "'}",

尝试从Javascript中删除datatype:'json'header("Content-Type: application/json; charset=utf-8", true);,它应该能够识别自己的