Javascript 无法进行AJAX调用

Javascript 无法进行AJAX调用,javascript,jquery,ajax,servlets,Javascript,Jquery,Ajax,Servlets,我正在尝试使用AJAX将数据插入数据库。一个ajax调用转到一个servlet,该servlet用于将数据插入数据库。但是我想我在初始化ajax对象时犯了一个错误。当我点击submit按钮时,数据不会被提交到数据库 HTML: 名称 进球 通行证 提交到数据库 JQuery: $(文档).ready(函数(){ $(“#提交数据”)。单击(函数(事件){ event.preventDefault(); 警报(“点击”); 如果(window.XMLHttpRequest){ $xhr=新的

我正在尝试使用AJAX将数据插入数据库。一个
ajax
调用转到一个servlet,该servlet用于将数据插入数据库。但是我想我在初始化
ajax
对象时犯了一个错误。当我点击submit按钮时,数据不会被提交到数据库

HTML:


名称
进球
通行证
提交到数据库
JQuery:


$(文档).ready(函数(){
$(“#提交数据”)。单击(函数(事件){
event.preventDefault();
警报(“点击”);
如果(window.XMLHttpRequest){
$xhr=新的XMLHttpRequest();
$xhr.onreadystatechange=函数(){
如果($xhr.readyState==4&&$xhr.status==200){
$xhr.open(“获取”、“插入”、“真实”);
$xhr.send();
}
}
}else{alert('else语句');}
});
});     
我在哪里出错了?

您应该在就绪状态更改侦听器外部调用open()和send(),而不是从回调中调用:)

您还可以使用
load
事件来处理响应

使用jQuery,您可以执行如下操作

 $('#submitdata').click(function(event) {
        event.preventDefault();
        $.ajax({
          'url' : '/ctxRoot/insert',
          'type': 'GET' // default is GET
        })
        .done(function(data){
            console.log('Ajax response - '+data);
        });
  });

有关更多详细信息,请查看官方文档

$xhr.open(“GET”、“insert”、“true”)你检查过那部分了吗?第二个参数是url,第三个参数是布尔变量,对于异步调用应该为true,而不是
true
。还要检查你的URL。还有一件事。。您应该在外部调用open()和send(),就绪状态更改回调只是对响应进行操作received@Arkantos控制不到那里。它不会输入if或else块。(使用chrome)尝试window.XMLHttpRequest(不带“s”),这样打字就不会出现在原始代码中了?
<script>

        $(document).ready(function() {
            $('#submitdata').click(function(event) {
                event.preventDefault();
                alert('clicked');
                if(window.XMLHttpRequest) {                        
                    $xhr = new XMLHttpRequest();
                    $xhr.onreadystatechange = function() {
                        if($xhr.readyState === 4 && $xhr.status === 200) {
                            $xhr.open("GET","insert","true");
                            $xhr.send();
                        }
                    }
                } else {alert('else statement');}
            });
        });     

</script>
    $('#submitdata').click(function(event) {
            event.preventDefault();
            alert('clicked'); // DOESN'T GO BEYOND THIS
            if(window.XMLHttpRequest) {                        
                $xhr = new XMLHttpRequest();
                // bind the readystage change listener first
                $xhr.onreadystatechange = function() {
                    if($xhr.readyState === 4 && $xhr.status === 200) {
                        alert('response received');
                    }
                }
                // call open passing request type, url, async
                $xhr.open("GET","/context-root/insert.do",true);
                $xhr.send();

            } else {
               alert('else statement');
            } // DOESN'T EVEN REACH HERE
      });
 $('#submitdata').click(function(event) {
        event.preventDefault();
        $.ajax({
          'url' : '/ctxRoot/insert',
          'type': 'GET' // default is GET
        })
        .done(function(data){
            console.log('Ajax response - '+data);
        });
  });