jQuery AJAX调用在页眉之前返回结果,导致parseerror

时间:2014-04-10 01:31:25

标签: php jquery ajax json parse-error

我正在尝试使用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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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