无法从Javascript的addEventListener方法调用jQuery POST请求

时间:2017-12-18 22:57:45

标签: javascript jquery

我有一个Javascript文件,可以处理我的html页面上的按钮点击。它运行良好并检测按钮点击,但是我无法在addEventListener方法中使POST请求工作。我在浏览器的控制台中没有出现任何错误,它只是无法正常工作。我的问题是缺少什么?基于我检查的POST个请求,此实现应该可以正常工作。

//我的.js文件:

(function(){
const btnSignUp = document.getElementById('btnSignUp');
const txtEmail= document.getElementById('txtEmail');

btnSignUp.addEventListener('click', e => {

    const email = txtEmail.value;
    console.log('test log');

    if (email.length < 4) {
          $.ajax({
          type: "POST",
          contentType: "application/json",
          url: "/signup/",
          data: JSON.stringify({title: email}),
          success: function (data) {
            console.log(data.title);
          },
          dataType: "json"
        });
    }
});
}());

1 个答案:

答案 0 :(得分:1)

从您的对象中删除警报调用,这是一个语法错误,因此您的代码段将无法运行。

另外,不确定这是否有所作为,但你可以用jquery onload函数替换自执行函数(IIFE),两者都提供封装范围......下面的例子

(function () {

//...

})();

成为

$(function () {

//...

});

哪里

//...

是你的代码。

我还会在你的jquery Ajax调用中添加一个错误字段,这样你就可以记录任何错误。

error: function (err) {

    console.log(err);

} 

考虑到你的问题中存在语法错误,这就是我所能提供的所有建议。

与浏览器开发工具成为朋友,特别是控制台和网络选项卡,控制台选项卡会选择您的语法错误,当询问“端点被击中”时,网络选项卡将产生您正在寻找的答案,和“端点给出的响应”。

最后,我会添加任何其他声明,在if之后检查电子邮件的长度,一个简单的日志会做,可能是你拿错了电子邮件字段,或者它不长足够。