Jquery Ajax错误回调函数

时间:2015-04-02 21:16:56

标签: jquery ajax

我正在尝试将数据发送到服务器以插入数据库。我使用ajax发送数据,一切正常,直到服务器尝试响应。我在控制台中得到一个parsererror并出现此错误:         Error: jQuery111107585765416733921_1428006987473 was not called {stack: (...), message: "jQuery111107585765416733921_1428006987473 was not called"}

以下是我们正在使用的ajax调用:

var data = {
        action: 'newUser',
        id:id,
        value:value 
    }
    $.ajax({
        url:"http://fake.url.com",
        async:false,
        crossDomain:true,
        contentType: "application/json",
        dataType: 'jsonp',
        data:data,
        // Work with the response
        success: function( response ) {
            console.log( response ); // server response

            if(response == 'invalid'){
                $('#takenUserName').html('<span style="color:red">Username already Exists</span>');
            }

        },
        error: function(xhr, status, error){
            console.log(xhr);
            console.log(status);
            console.log(error);
        }

    }); `

我做错了什么? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您使用的是jsonp,则必须在响应中返回回调参数的值,否则它将无法工作,如果您想避免这种情况,请使用&#34; json&#34;而不是&#34; jsonp&#34;

这是证明你的客户端很好的证明,你的服务器端不是以jsonp的形式处理响应,而是作为json(在响应中返回令牌以使其成为jsonp){{ 3}}

var data = {
        action: 'newUser',
        id:'123',
        value:'val' 
    }

     $.ajax({
        url:"http://jsfiddle.net/echo/jsonp/",
        async:false,
        crossDomain:true,
        contentType: "application/json",
        dataType: 'jsonp',
        data:data,
        // Work with the response
        success: function( response ) {
            console.log( response ); // server response

            if(response == 'invalid'){
                $('#takenUserName').html('<span style="color:red">Username already Exists</span>');
            }

        },
        error: function(xhr, status, error){
            console.log(xhr);
            console.log(status);
            console.log(error);
        }

    });

<强> [更新]

您的响应应该在服务器端看起来像这样:

$_GET['callback'].'({"response":"json_object"})';