简体   繁体   English

jQuery ajax不能正常工作

[英]jquery ajax just isn't working

Ok, thats basically what i got. 好的,那基本上就是我得到的。 I also tried static values. 我也尝试了静态值。

$('#submitForm').submit(function() {
    $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        data: $(this).serialize(),
        success: function (data) {
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }
    });
});

What i get as response is this: 我得到的回应是这样的:

Object {readyState: 0, responseText: "", status: 0, statusText = "error"} 

The php script (just a simple echo) runs as normal after that ajax call. 在该ajax调用之后,php脚本(只是一个简单的回显)便正常运行。 What am i doing wrong? 我究竟做错了什么? My submit script doesn't look all that wrong to me and i'm not doing XSS. 我的提交脚本看起来对我来说并没有错,我也没有在做XSS。 : - ( :-(

My HTML Form looks like this: 我的HTML表单如下所示:

<form action="http://dev.xxxxxxx.de/users/register" method="post" accept-charset="utf-8" class="form-horizontal" id="submitForm">                <div class="control-group">
                <label class="control-label" for="inputUsername">Nickname</label>
                <div class="controls">
                    <input type="text" name="username" id="inputUsername" value="" placeholder="Nickname" />
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="inputEmail">E-Mail</label>
                <div class="controls">
                    <input type="text" name="email" id="inputEmail" value="" placeholder="E-Mail" />
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="inputPassword">Passwort</label>
                <div class="controls">
                    <input type="password" name="password" id="inputPassword" value="" placeholder="Passwort" />
                </div>
            </div>
            <div class="control-group">
                <div class="controls">
                    <input type="submit" class="btn" value="Account erstellen" />
                </div>
            </div>
        </form>

You need to tell the browser not to submit the form by default with: 您需要通过以下方式告诉浏览器不要提交表单:

e.preventDefault();

So: 所以:

$('#submitForm').submit(function(e) {
    e.preventDefault();
    $.ajax({
        type: this.method,
        url: this.action,
        data: $(this).serialize(),
        success: function (data) {
            console.log(data);
        },
        error: function (data) {
            console.log(data);
        }
    });
});

Otherwise, your form will submit according to the "action" attribute, before your AJAX returns. 否则,您的表单将在AJAX返回之前根据“操作”属性提交。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM