Jquery Ajax请求出错,它总是执行错误块

时间:2014-04-01 05:34:44

标签: javascript jquery ajax json

我正在向我的服务器发送ajax调用,其中参数为" general"或任何文本,对于搜索查询,为什么总是给出错误。答案在JSON,我已经提到了,以下代码的任何问题?任何帮助将受到高度赞赏

$.ajax({
    url : "${kb_endpoint_url}",
    dataType : 'json',
    data : { search_query : queryValue }, // queryValue = general
    success : function(data) {
            console.log("success");
    },

     error: function ( xhr, status, error) {
      console.log( " xhr.responseText: " + xhr.responseText + " //status: " + status + " //Error: "+error );

    }

打印: xhr.responseText: undefined //status: SyntaxError: JSON.parse: unexpected character //Error: undefined

编辑:我尝试将类型更改为application / json,现在控制台打印

xhr.responseText:undefined // status:没有从文本转换为application / json //错误:未定义

3 个答案:

答案 0 :(得分:0)

xhr.responseText: undefined //status: SyntaxError: JSON.parse: unexpected character //Error: undefined

我想;此错误表示从您的URL返回的响应不是JSON,尝试解析它时出错。

通过查看responseText

,查看您的网络面板(更简单),或调整错误处理程序以查看服务器实际返回的响应

答案 1 :(得分:0)

如果服务器返回文本undefined,则这不是有效的JSON,无法解析。
只有null在JSON格式中有效,因此尝试解析undefined会出现此错误。

例如:

JSON.parse("undefined"); // Throws an error, "Unexpected token u"
JSON.parse("null");      // Returns null

答案 2 :(得分:-1)

如果您对dataType : 'json',发表评论,则ajax正常运行。您的回复不是JSON格式。

    $.ajax({
        url : "${kb_endpoint_url}",
        dataType : 'json',
        type : 'post',
        data : { search_query : queryValue }, // queryValue = general
        success : function(data) {
                console.log("success");
        },

         error: function ( xhr, status, error) {
          console.log( " xhr.responseText: " + xhr.responseText + " //status: " + status + " //Error: "+error );

        }
});

另一个文件(提到的网址)

<?php

echo json_encode($_POST);

?>