JQuery Ajax POST无法正常工作

时间:2016-10-14 20:29:28

标签: javascript jquery ajax

我有这样的按钮。

<input onclick="reply_click(this.id,this.name)" target="_blank" type="submit" id="'+clickid+'" name="'+click_ip+'" value="Check">

和javascript一样。

function reply_click(clicked_id,click_ip)
{
    var data        = 'sendCID=' + clicked_id;
    alert(data);
    $.ajax({
                type: 'POST',
                url: 'send_data.php',
                data: data, 
                async:false,
                success: function(){
                success = true
                }
            });
    if(success){
      window.open('http://whatismyipaddress.com/ip/'+click_ip)
    }
}

警报正常工作,但数据未发送到数据库。 如何解决这个问题?

谢谢...

1 个答案:

答案 0 :(得分:0)

这个答案的标志是重复的声音。但在那之前,我会告诉你它为什么不起作用。

想想这段代码:

var a = 0;
function do_something() {
   a = 1;
}
a = 2;
console.log(a);
do_something();

打印到控制台的是什么? 2。仅仅因为代码碰巧在物理上高于其他代码,并不意味着它按照该顺序被调用。在这个例子中很容易辨别,但是现在让我们来看看你的代码。

...
            success: function(){
                success = true
                }
            });
    if(success){
      window.open('http://whatismyipaddress.com/ip/'+click_ip)
    }
...

你知道,成功正在里面设置返回功能。直到稍后才会发生这种情况。但下一行if(success)立即运行!这意味着成功尚未改变。您还需要在内部移动{/ 1}} 成功回调。那是你希望它发生的时候!

window.open