Angular5 HttpClient 发送数据但服务器无法理解其参数

罗汉·拉菲

当我提交常规 HTML 表单时,我的后端服务(用 Laravel 编写)可以理解 POST 参数。

我检查了浏览器中的请求标头。请求参数为:

Form Data:
    _token:v4xCN9fHMpZhoQMGHfbqI01XDsQ1nCxYhy3RDrw5
    username:root
    password:123456

然后我编写了以下方法通过 angular5 向服务器发送 post 请求HttpClient

public post(url: string, data: any): Observable<any[]> {
    const headers = new HttpHeaders({
        'Content-Type': 'application/x-www-form-urlencoded'
    });
    return this.http.post( url, data,
        {
            headers: headers
        }
    ).pipe(
        tap(success => this.handleSuccess(success)),
        catchError(this.handleError())
    );
}

但是浏览器会显示不同的表单数据,如下所示:

Form Data:
    {"username":"asdf","password":"asdf","_token":"mytoken"}:

我将以下对象作为数据传递:

    data = {
        username: 'asdf',
        password: 'asdf',
        _token: 'mytoken'
    };

但是服务器( Laravel )无法理解请求参数。请让我知道它有什么问题?

爱欲

data应该是一个FormData实例而不是一个普通对象(这将是 json 编码的)。例子:

const data = new FormData();
data.append("username", "asdf");
data.append("password", "asdf");
data.append("_token", "mytoken");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章