尽管 Postman 成功,但 Angular6 HttpClient Post 方法不起作用?
Angular6 HttpClient Post method not working although Postman is successful?
下面是我的后处理方法的代码:
postMetadata(titleParam, rankParam) {
let headers = new HttpHeaders();
headers = headers.append(
"Authorization",
"Bearer " + this.adalService.userInfo.token
);
headers = headers.append(
"Content-Type",
"application/x-www-form-urlencoded"
);
const params = new HttpParams()
.append("title", titleParam)
.append("rank", rankParam)
.append("createdBy", "Test");
console.log(params, headers);
return this.http.post(this.ROOT_URL + "bms/metadata", {
"title": titleParam,
"rank": rankParam,
"createdBy": "Test"
}, { headers })
}
我也尝试过放置 { params } 并在那里使用 HttpParams 对象,结果相同。还尝试将它们一个接一个地放置 { params, headers } 在这种情况下我得到 'unauthorized' 我确定它是因为它无法正确解析整个事情并且令牌混淆了。
使用邮递员,我从控制台复制粘贴了令牌以便能够发出请求并且一切正常,东西已添加到数据库中。
在Angular的情况下,后端请求的确切错误是:
Error updating the dataabase { RequestError: Invalid column name 'undefined'.
如果我尝试在控制台上登录 req.query.title 等等,我得到的只是到处都是 'undefined'。
后端基本上是 express + mssql (tedious.js) + passport-azure-ad。
我已经被困在这个问题上好几个小时了,又一次,在堆栈上发布后几分钟内就解决了。
我必须设置以下内容:
"Content-Type",
"application/json"
出于某种奇怪的原因,我在控制台中收到错误消息?将进一步调查。错误:
编辑:也已修复,这是 HttpClient 服务请求的完整最终工作代码:
postMetadata(titleParam, rankParam) {
let headers = new HttpHeaders();
headers = headers.append(
"Authorization",
"Bearer " + this.adalService.userInfo.token
);
headers = headers.append(
"Content-Type",
"application/json"
);
let body = { "title": titleParam, "rank": rankParam, "createdBy": "TestingCreation" }
const data = JSON.stringify(body);
return this.http.post(this.ROOT_URL + "bms/metadata", data , { headers, responseType: 'text' })
}
下面是我的后处理方法的代码:
postMetadata(titleParam, rankParam) {
let headers = new HttpHeaders();
headers = headers.append(
"Authorization",
"Bearer " + this.adalService.userInfo.token
);
headers = headers.append(
"Content-Type",
"application/x-www-form-urlencoded"
);
const params = new HttpParams()
.append("title", titleParam)
.append("rank", rankParam)
.append("createdBy", "Test");
console.log(params, headers);
return this.http.post(this.ROOT_URL + "bms/metadata", {
"title": titleParam,
"rank": rankParam,
"createdBy": "Test"
}, { headers })
}
我也尝试过放置 { params } 并在那里使用 HttpParams 对象,结果相同。还尝试将它们一个接一个地放置 { params, headers } 在这种情况下我得到 'unauthorized' 我确定它是因为它无法正确解析整个事情并且令牌混淆了。
使用邮递员,我从控制台复制粘贴了令牌以便能够发出请求并且一切正常,东西已添加到数据库中。
在Angular的情况下,后端请求的确切错误是:
Error updating the dataabase { RequestError: Invalid column name 'undefined'.
如果我尝试在控制台上登录 req.query.title 等等,我得到的只是到处都是 'undefined'。
后端基本上是 express + mssql (tedious.js) + passport-azure-ad。
我已经被困在这个问题上好几个小时了,又一次,在堆栈上发布后几分钟内就解决了。
我必须设置以下内容:
"Content-Type",
"application/json"
出于某种奇怪的原因,我在控制台中收到错误消息?将进一步调查。错误:
编辑:也已修复,这是 HttpClient 服务请求的完整最终工作代码:
postMetadata(titleParam, rankParam) {
let headers = new HttpHeaders();
headers = headers.append(
"Authorization",
"Bearer " + this.adalService.userInfo.token
);
headers = headers.append(
"Content-Type",
"application/json"
);
let body = { "title": titleParam, "rank": rankParam, "createdBy": "TestingCreation" }
const data = JSON.stringify(body);
return this.http.post(this.ROOT_URL + "bms/metadata", data , { headers, responseType: 'text' })
}