【发布时间】:2020-03-02 23:39:40
【问题描述】:
我想将表单数据发布到接受并返回 text/html/xml 的服务器。我正在有效地尝试模拟普通的 URL 编码形式 POST。我的 Angular 8 POST 函数成功发布(200 OK),但服务器无法理解数据,因为它是 JSON 而不是 URL 编码的。
响应和请求标头状态为Content-Type: text/html; Charset=utf-8 和Accept: text/html, application/xhtml+xml, */*,我已将responseType: "text" 添加到httpClient 选项中。为什么服务器仍然发送 JSON 而不是 URL 编码数据?
// obj2 = output from ngForm
// baseUrl2 = server that sends and receives text/html/xml
public postForm(obj2) {
return this.httpClient
.post(this.baseUrl2, obj2, {
headers: new HttpHeaders({
"Content-Type": "application/x-www-form-urlencoded",
Accept: "text/html, application/xhtml+xml, */*"
}),
responseType: "text"
})
.map(data => data);
}
发送的表单数据:
{"Form data":{"{\"personsNameText\":\"name9\",\"centreEmailAddressText\":\"name9@name.com\",\"centreTelephoneNumberText\":123456789,\"centreNumberText\":\"ab123\",\"centreNameText\":\"ab123\",\"invoiceText\":\"123456789\",\"currencyText\":\"GBP\",\"amountText\":\"100\",\"cardtypeText\":\"Credit card\",\"commentsText\":\"Comments.\",\"declarationText\":true}":""}}
我想要什么:
personsNameText=name9?centreEmailAddressText=name9@name.com?centreTelephoneNumberText=123456789?centreNumberText=ab123?centreNameText=ab123?invoiceText=123456789?currencyText=GBP?amountText=100?cardtypeText=Credit card?commentsText=Comments.?declarationText=true
【问题讨论】:
标签: javascript angular forms post urlencode