我一直在尝试向我支持的API发出发布请求来发布一些数据。我已经用postman尝试过这个API,它工作正常,数据也能正确返回。但是,当我尝试从我的ionic-angular应用程序中做同样的事情时,它根本不起作用。我已经尝试了网络上可用的大多数方法,我正在使用Angular v6.0.8和Ionic framework v4.0.1构建这个应用程序,API要求在请求主体中包含application/x-www-form-urlencoded数据(包括用户名、密码和grant_type)。我已经尝试使用遗留的http和新的httpClient模块,但没有运气。到目前为止,我尝试过使用URLSearchParams/JSONObject/HttpParams来创建请求的主体。对于头文件,我使用HttpHeaders()将application/x-www-form-urlencoded作为Content-Type发送。这些方法都不起作用。
有人能帮我吗?
PFB是我迄今为止尝试过的方法之一。
谢谢,阿图尔
import { Injectable } from "@angular/core";
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable()
export class AuthService {
constructor(private http: HttpClient) {
}
signin(username: string, password: string){
const formData = new FormData();
formData.append('username', username);
formData.append('password', password);
formData.append('grant_type', 'password');
this.http.post(apiUrl,formData,
{
headers: new HttpHeaders({
'Content-Type':'application/x-www-form-urlencoded'
})
}
)
.subscribe(
(res) => {
console.log(res);
},
err => console.log(err)
);
}
}
5条答案
按热度按时间2ekbmq321#
我试图从一个端点获得一个oauth令牌,我可以说,这真的很难找到一个工作的答案。
下面是我如何使它工作在Angular 7,但这也将工作在Angular 6
如果你得到cors错误只是设置一个Angular 代理:
2w2cym1i2#
You dont need to
JSON.stringify(formData)
just pass theformData
as the second parameter for thehttp.post
method.create a instance of
FormData
. And the append the values that you need to send using theformData.append()
.And the
httpHeaders
like this.0mkxixxg3#
请试试这个,它对我很有效:
tyky79it4#
mefy6pfw5#
下面的一个工作为我在最新的Angular 版本截至目前...