AJAX jQuery 表单提交发送两次 POST & OPTIONS



我很难弄清楚为什么我的AJAX代码在表单提交时被发送两次。

OPTIONS请求和POST请求-都是200个状态消息。POST请求成功并返回我想要的内容,这一切都很好。我不希望出现OPTIONS请求

认为它可能与CORS或解除绑定提交事件处理程序有关?

如果有人能帮忙就太好了。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<form id="loginform">
        Username: <input type="text" class="rname" name="username" value=""/>
        Password:  <input type="text" class="rpass" name="password" value=""/>
        <input type="submit" value="Submit" />
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
scripts = function () {
    var _t = this;
    var authenticateUrl = "http://...";
    this.events = function () {
        $('#loginform').submit(_t.loginEvent);
    };
    this.loginEvent = function (event) {
            event.preventDefault();
            var $form = $(this);
            var _name = $form.find(".rname").val();
            var _pass = $form.find(".rpass").val();
            var submitData= {username: _name,password: _pass};
            submitData = JSON.stringify(submitData);
            $.ajax({
                type: 'POST',
                contentType: "application/json",
                dataType: 'json',
                url: authenticateUrl,       
                data: submitData,
                success: function(data) {
                    console.log("Success loginEvent");
                    if (data.error) {
                        console.log("Unsuccessful Login");
                    } else {
                        console.log("successful Login");
                    }
                }
            });
        };
    this.init = function () {
        _t.events();
    };
    this.init();
    return (this);
};
var LZ = new scripts();
</script>
</body>
</html>

如果你得到正确的响应,这没什么奇怪的。

Options请求用于允许客户端确定与资源或服务器功能相关的选项和/或需求,而无需暗示资源操作或启动资源检索。

OPTIONS请求就是跨域资源共享(CORS)中我们所说的pre-flight请求。

最新更新