Angular 角度7:Post请求始终发送空正文

Angular 角度7:Post请求始终发送空正文,angular,http,angular7,angular-httpclient,Angular,Http,Angular7,Angular Httpclient,我一直在努力理解这个问题,现在已经有好几天了,所以我想使用angular 7向nodejs rest api发送一个带有用户名和密码的post请求以进行身份验证,但它发送了一个空正文这是authservice.ts中的登录方法: login(username: string, password: string): Observable<any> { let httpOptions = { headers: new HttpHeaders({

我一直在努力理解这个问题,现在已经有好几天了,所以我想使用angular 7向nodejs rest api发送一个带有用户名和密码的post请求以进行身份验证,但它发送了一个空正文这是authservice.ts中的登录方法:

login(username: string, password: string): Observable<any> {

        let httpOptions = {
            headers: new HttpHeaders({
                'Content-Type': 'application/json',
                'Accepts': 'application/json'
            })
        };
        return this.http.post<any>(
            `${this.HOST_DOMAINE}/bo/api/authenticate`,
            {
                'username': username,
                'password': password
            },
            httpOptions
        );

    }
我一直在寻找解决方案,但我尝试的一切都不起作用,我不知道我错过了什么。
注意:我是一个初学者

对于任何面临相同问题的人来说,这里有一个临时解决方案! 所以我发现这是一个交叉起源的问题,这里有一个解决方法:

login(username: string, password: string): Observable<any> {

        let httpOptions = {
            headers: new HttpHeaders({
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
            }),
            params: new HttpParams()
                .set("username", username)
                .set("password", password),
            withCredentials: true
        };
        return this.http.post<any>(
            `${this.HOST_DOMAINE}/bo/api/authenticate`,
            null,
            httpOptions
        );

    }

它工作了,但仍然需要在原点进行测试

对于任何面临相同问题的人,这里有一个临时解决方案! 所以我发现这是一个交叉起源的问题,这里有一个解决方法:

login(username: string, password: string): Observable<any> {

        let httpOptions = {
            headers: new HttpHeaders({
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
            }),
            params: new HttpParams()
                .set("username", username)
                .set("password", password),
            withCredentials: true
        };
        return this.http.post<any>(
            `${this.HOST_DOMAINE}/bo/api/authenticate`,
            null,
            httpOptions
        );

    }

它工作了,但仍然需要在源站上进行测试

这看起来还可以,请从nodejs添加rest函数检查网络选项卡或任何工具以可视化请求的有效负载。很可能是发送了正文。看起来很好,尝试在服务器和客户端上调试代码上次调试我做的正文显示如下{}表示它是空的请求已发送,但它是空的。您的表单是否有问题?是否将用户和密码传递到方法中?表单是如何定义的?看起来不错,请从nodejs中添加rest函数检查网络选项卡或任何工具以可视化请求的有效负载。很可能是发送了正文。看起来很好,尝试在服务器和客户端上调试代码上次调试我做的正文显示如下{}表示它是空的请求已发送,但它是空的。您的表单是否有问题?是否将用户和密码传递到方法中?您的表单是如何定义的?
app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", req.get('origin'));
    res.header('Access-Control-Allow-Credentials', true);
    res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});