使用带参数对象的Axios Post不返回任何数据

时间:2017-09-16 23:08:25

标签: javascript ajax laravel vue.js axios

我在使用Axios并将参数对象发布到Laravel路线时遇到问题。

如果我使用查询参数e.g. ?username=user,则帖子请求有效。但如果我使用一个对象就失败了:

以下是Axios发布请求:

let params =
{
    'username': 'help',
    'password': 'me'
};
axios.post(
'https://cors.now.sh/https://jumprope.design/test-login', params, {
headers: {
    'accept': 'application/json',
    'accept-language': 'en_US',
    'content-type': 'application/x-www-form-urlencoded',
    '_token': 'UawpqT74cr9sr0Uut0lttZPE2YKDb1ckvXYpzNJW'
}
}).then(function(response) {
    console.log(response);
})
.catch(function(error) {
    console.log(error);
});

当我删除params obj并将?username=user附加到URL路由时,它可以工作,我从请求中返回数据。

这是Laravel(5.1)控制器:

protected function postTestRequest(Request $request)
{
    $data = $request::all();
    return response()->json($data);
}

在浏览器中点击此路线或使用邮递员进行测试可以正常工作:https://cors.now.sh/https://jumprope.design/test-login

以下是codepen的链接:CodePen

非常感谢任何帮助或指导。

另外,我在这里尝试了https://github.com/mzabriskie/axios#using-applicationx-www-form-urlencoded-format的建议,但仍然收到了相同的结果。

1 个答案:

答案 0 :(得分:0)

签入您的路线文件,看看您要定位的路线是否使用'POST'方法定义,因为您正在点击'POST'并检查  该路线的目标是'postTestRequest'方法。你的路线肯定有问题。还要检查是否有任何其他路线与之没有冲突。