AJAX调用返回“意外的令牌<”

时间:2014-06-19 16:01:46

标签: jquery ajax json

所以,这是发生了什么。

我有一个AJAX调用,它应该返回一个JSON对象数组。

AJAX调用如下所示:

ajax : function( url , data,  success ){

        return $.ajax( {
                    url      : url,
                    type     : 'POST',
                    data     : data,
                    dataType : 'json',
                    success  : function( data ){ success( data ); },
                    error    : function( jqXHR , textStatus , errorThrown )
                    {
                        console.log( errorThrown );
                    }
                } );
    }

调用该函数是这样的:

this.tvModelsAjax = this.ajax( sanus_website_search.tvModelAutocomplete,
                                        {q : autoCompleteController.query },
                                        autoCompleteController.success );

如果您在浏览器中打开它,返回的数据将如下所示:

[{"name":"SAMSUNG 40\" 400BX","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400BX\/results\/"},{"name":"SAMSUNG 40\" 400CX","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400CX\/results\/"},{"name":"SAMSUNG 40\" 400CX1","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400CX1\/results\/"},{"name":"SAMSUNG 40\" 400CX2","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400CX2\/results\/"},{"name":"SAMSUNG 40\" 400CXN","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400CXN\/results\/"},{"name":"SAMSUNG 40\" 400CXN1","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400CXN1\/results\/"},{"name":"SAMSUNG 40\" 400CXN2","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400CXN2\/results\/"},{"name":"SAMSUNG 40\" 400DX","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400DX\/results\/"},{"name":"SAMSUNG 40\" 400DX2","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400DX2\/results\/"},{"name":"SAMSUNG 40\" 400DX3","url":"\/app_dev.php\/en_US\/mountfinder\/SAMSUNG\/40%22\/400DX3\/results\/"}]

但是jQuery正在抛出一个错误,告诉我我有一个意想不到的"<"在某个地方......令我感到茫然。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

民间,

似乎我正在查询的PHP期待GET方法,而不是像该页面上的其他调用那样的POST。我最后添加了一个'方法' ajax方法的参数。结果如下。谢谢你的帮助!

ajax:function(url,data,success,method =' POST'){

    return $.ajax( {
                url      : url,
                type     : method,
                data     : data,
                dataType : 'json',
                success  : function( data ){ success( data ); },
                error    : function( jqXHR , textStatus , errorThrown )
                {
                    console.log( errorThrown );
                }
            } );
}