关于Axios的使用

时间:2019-02-03 17:32:21

标签: javascript php html

今天,我使用Axios编写了一个注册的AJAX来提交JS,可以正常发送请求,但是我发现后端完全无法接受前端的用户名和密码信息。
我该如何解决?谢谢。 JS代码(JQuery)的一部分:

var captcha_res_ticket = $.cookie("captcha.res.ticket");
var captcha_res_randstr = $.cookie("captcha.res.randstr");
var username = $("#inputUsername").val();
var email = $("#inputEmail").val();
var password = $("#inputPassword").val();
var repassword = $("#inputRepassword").val();
var agree_user_agreement = $("#agree_user_agreement").is(":checked");
var participate_in_the_user_experience_program = $("#participate_in_the_user_experience_program").is(":checked");

Axios部分代码(JS):

axios({
            url: '/user/user_registration/php/registration.php',
            method: 'post',
            timeout: 3000,
            data: {
                captcha_res_ticket: captcha_res_ticket,
                captcha_res_randstr: captcha_res_randstr,
                username: username,
                email: email,
                password: password
            }
        })

对不起,我的英语不好。

1 个答案:

答案 0 :(得分:0)

$_POST['captcha_res_ticket'];

您尝试使用PHP的默认解析来获取表单数据,但是Axios默认发布JSON(不是标准表单编码)。

请引起您注意Axios manual

  

默认情况下,axios将JavaScript对象序列化为JSON。发送数据   改为使用application / x-www-form-urlencoded格式,您可以使用   以下选项之一。

     

浏览器

     

在浏览器中,您可以如下使用URLSearchParams API:

const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('/foo', params);

…,并继续提供更多信息和示例。