AJAX不会将值应用于变量

时间:2014-03-28 21:09:03

标签: javascript jquery ajax variables store

我真的不知道我的代码有什么问题。我想将AJAX请求的结果存储在变量中。结果是IMG Url我想要预加载它。

    $.ajax({
        type: "POST",
        url: 'code/submit/submitGetUserData.php',
        data: 'id=' + right1,
        complete:function(jqXHR,status){
            preloadLeft = new Image();
            preloadRight.src = jqXHR.responseText;
            console.log('src='.preloadRight.src);
        }
    });

但变量是未定义的 - >除非我将请求设置为异步,否则JS不会将结果存储在变量中。但那花了太多时间......

我希望有人能帮助我! :)

2 个答案:

答案 0 :(得分:0)

尝试使用成功来阅读ajax响应。

试试这个:

 $.ajax({
url: 'code/submit/submitGetUserData.php',
type: 'POST',
cache: false,
contentType: 'application/json',
data: 'id=' + right1,
success: function (data) {

    console.log(data);

},
error: function (request, xhr) {
    alert(request.responseText);
},
complete: function () {

}

});

观察返回ajax调用时数据对象包含的内容。

希望它有所帮助,

里卡多

答案 1 :(得分:0)

您使用错误的语法传递数据并始终添加成功函数,并且还始终添加错误处理函数,以便您可以从服务器端知道ajax调用是否失败。

这样做:

var preloadLeft;


$.ajax({
        type: "POST",
        url: 'code/submit/submitGetUserData.php',
        data: {id: right1},
        success:function(jqXHR,status){
            preloadLeft = new Image();
            preloadRight.src = jqXHR.responseText;
            console.log('src='.preloadRight.src);
        },
        error: function(){
alert("error occured");

}

    });