【问题标题】:Return 404 not found when form submit using AJAX使用 AJAX 提交表单时未找到返回 404
【发布时间】:2016-01-02 19:09:36
【问题描述】:

我正在尝试从名为“script.js”的 js 文件中的“index.ejs”中进行简单的 AJAX 调用。但是,我不断收到错误消息。 POST http://localhost:3000/doLogin 404 (Not Found)

在 index.ejs 中:

<div id="login-page" data-role="page">
    <div data-role="header">
        <h1>Login</h1>
    </div>
    <div data-role="content">
        <form id="login-form" action="/doLogin" method="post">
            <input id="txtEmailLogin" type="email" placeholder="Email" required/>
            <input id="txtPasswordLogin" type="password" placeholder="Password" required/>
            <input type="submit" value="Log in"/>
        </form>
    </div>
</div>

在 script.js 中:

$(document).on('pageshow','#login-page', function() {
    var frm = $('#login-form');
    frm.submit(function(e) {
        var email = $('#txtEmailLogin').val();
        var password = $('#txtPasswordLogin').val();

        $.ajax({
            type     : frm.attr('method'),
            url      : frm.attr('action'), 
            data     : {
                email    : email,
                password : password
            },
            success : function(check) {
                if (check.status == 'success') {
                    alert('Welcome, '+ check.name +' !');
                    $('body').pagecontainer('change', '/profile');
                }else {
                    alert('Fail to Login');
                }
            }
        });
        e.preventDefault();
    });
});

有人可以帮我吗?

【问题讨论】:

  • 404 表示没有 localhost:3000/doLogin - 如果您认为该路径应该可用,请向我们展示您的服务器端代码
  • 如果您在浏览器选项卡中访问此网址会发生什么?
  • 你能打开浏览器调试器并检查请求的确切发送位置吗?注意:当您提交时,它会为您解析上下文路径。但是在 jQuery 中,您直接发送到操作路径

标签: jquery ajax


【解决方案1】:
$(document).on('pageshow','#login-page', function(e) {

    e.preventDefault();
var frm = $('#login-form');
frm.submit(function(e) {
    var email = $('#txtEmailLogin').val();
    var password = $('#txtPasswordLogin').val();

    $.ajax({
        type     : frm.attr('method'),
        url      : frm.attr('action'), 
        data     : {
            email    : email,
            password : password
        },
        success : function(check) {
            if (check.status == 'success') {
                alert('Welcome, '+ check.name +' !');
                $('body').pagecontainer('change', '/profile');
            }else {
                alert('Fail to Login');
            }
        }
    });
});});

使用这个 在操作中提及 php 文件名

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2016-01-23
    • 1970-01-01
    • 2016-06-25
    • 2013-07-28
    • 2018-10-08
    相关资源
    最近更新 更多