Javascript 在ajax中将变量传递到URL

Javascript 在ajax中将变量传递到URL,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有下面的ajax调用,其中我试图将注册数据直接发布到URL,但我是否可以存储这些变量,然后将其传递到URL中。请帮忙,先谢谢你 您可以在下面的示例中看到Script.js jquery: $(function() { /* Registration form for the website */ /* validation */ $("#register-form").validate({ rules: { firstName:

我有下面的ajax调用,其中我试图将注册数据直接发布到URL,但我是否可以存储这些变量,然后将其传递到URL中。请帮忙,先谢谢你

您可以在下面的示例中看到Script.js

jquery:

$(function() {

    /* Registration form for the website */
    /* validation */
    $("#register-form").validate({
        rules: {
            firstName: {
                required: true
            },
            lastName: {
                required: true
            },
            userName: {
                required: true,
                minlength: 4
            },
            email: {
                required: true,
                email: true
            },
            password: {
                required: true,
                minlength: 8,
                maxlength: 15
            },
            cpassword: {
                required: true,
                equalTo: '#password'
            },
        },
        messages: {
            userName: "please enter a valid user name",
            password: {
                required: "please provide a password",
                minlength: "password at least have 8 characters"
            },
            email: "please enter a valid email address",
            cpassword: {
                required: "please retype your password",
                equalTo: "password doesn't match !"
            }
        },
        submitHandler: submitForm
    });
    /* validation */

    /* form submit */
    function submitForm() {
        var data = $("#register-form").serialize();
        // var data={
        //  firstName: $('#firstName').val(),
        // }

        $.ajax({

            url: 'http://localhost:8000?userName=&password=&firstName=&lastName=&email=',
            type: 'POST',
            data: data,

            beforeSend: function() {
                $("#error").fadeOut();
                $("#btn-submit").html('<span class="glyphicon glyphicon-transfer"></span> &nbsp; sending ...');
            },

            success: function(data) {
                if (data === 0) {

                    $("#error").fadeIn(1000, function() {


                        $("#error").html('<div class="alert alert-danger"> <span class="glyphicon glyphicon-info-sign"></span> &nbsp; Sorry email already taken !</div>');

                        $("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> &nbsp; Create Account');

                    });

                } else if (data == 1) {

                    $("#btn-submit").html('<img src="btn-ajax-loader.gif" /> &nbsp; Signing Up ...');

                } else {

                    $("#error").fadeIn(1000, function() {

                        $("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; ' + data + ' !</div>');

                        $("#btn-submit").html('<span class="glyphicon glyphicon-log-in"></span> &nbsp; Create Account');

                    });

                }
            }
        });
        return false;
    }
});
$(函数(){
/*网站注册表格*/
/*验证*/
$(“#登记表”)。验证({
规则:{
名字:{
必填项:true
},
姓氏:{
必填项:true
},
用户名:{
要求:正确,
最小长度:4
},
电邮:{
要求:正确,
电子邮件:真的
},
密码:{
要求:正确,
最小长度:8,
最大长度:15
},
注册会计师密码:{
要求:正确,
equalTo:“#密码”
},
},
信息:{
用户名:“请输入有效的用户名”,
密码:{
必填:“请提供密码”,
minlength:“密码至少有8个字符”
},
电子邮件:“请输入有效的电子邮件地址”,
注册会计师密码:{
必填:“请重新输入您的密码”,
equalTo:“密码不匹配!”
}
},
submitForm
});
/*验证*/
/*提交表格*/
函数submitForm(){
变量数据=$(“#注册表形式”).serialize();
//var数据={
//firstName:$('#firstName').val(),
// }
$.ajax({
网址:'http://localhost:8000?userName=&password=&firstName=&lastName=&email=',
键入:“POST”,
数据:数据,
beforeSend:function(){
$(“#错误”).fadeOut();
$(“#btn submit”).html('sending…');
},
成功:功能(数据){
如果(数据===0){
$(“#错误”).fadeIn(1000,函数(){
$(“#error”).html('抱歉,电子邮件已被占用!');
$(“#btn submit”).html('Create Account');
});
}else if(数据==1){
$(“#btn submit”).html(‘注册…’);
}否则{
$(“#错误”).fadeIn(1000,函数(){
$(“#错误”).html(“+data+”!”);
$(“#btn submit”).html('Create Account');
});
}
}
});
返回false;
}
});
变成

    url: 'http://localhost:8000?' + data,
    type: 'GET',
    //data: data,

您的AJAX URL错误,不需要键入完整地址。Serialize方法应该可以为您完成这项工作。您只需要
localhost:8000?+数据
。正如@zer00ne所说,永远不要使用
GET
如果你输入密码,它会显示在URL上。根据经验,任何以表格形式发送的内容都应该是
POST
请求,除非我不知道某些罕见的情况

我的建议是:

$.ajax({

        url: 'http://localhost:8000?',
        type: 'POST',
        data: data,

这样,您就可以安全地将信息发送到正确的位置。

可能重复的如果您想将变量放入URL,请使用type
GET
request。@Leo我同意这是重复的,但这是我遇到的不同问题。我能够看到数据,但它没有被正确地传递到URL,因为某些原因,所有输入都有一个“逗号”。我认为这是因为我将其硬编码到URL本身,而不是存储每个单独的组件,然后将其传递到URL。请您举个例子。如果您试图将变量插入url,为什么要使用POST?如果您决定使用GET,但不向url添加密码,这是不安全的。因为我们不希望像zer00ne所说的任何人都能看到我们的密码。所以我会坚持利奥的解决方案。
$.ajax({

        url: 'http://localhost:8000?',
        type: 'POST',
        data: data,