HTTP Post 请求 body 被解释为 text/plain 而不是 url-encoded。
HTTP Post request body is interpreted as text/plain instead of url-encoded.
这是我的电子邮件功能的样子:
sendEmail(fromName, fromEmail, message) {
var headers = new Headers();
var recieverMail = "abc@cdf.com";//service@csc.kth.se"
var subject = "error report submitted by interactive screen"
var recieverName = "CSC SERVICE";
headers.append("Authorization", "Basic "+btoa("api:key-MY_API_KEY"));
headers.append("content-type", "application/x-www-form-urlencoded");
var url = "https://api.mailgun.net/v3/mymailgunserver.mailgun.org/messages ";
var body = "from="+fromName+"<"+fromEmail+">&to="+recieverName+"<"+recieverMail+">&subject="+subject+"&text="+message;
return this.http.post(url,body,{headers:headers});
}
从上图可以看出,我的请求也附上了text/plain header,这是为什么呢?
我的请求 body 被解释为 text/plain 而不是 url-encoded。有什么建议可以解决这个问题吗?
我想知道 HTTP header 名称是否不是 case-sensitive。您可以尝试以下方法:
let headers = new Headers();
headers.append("Content-Type", "application/x-www-form-urlencoded");
另一个可能的问题是您忘记导入 Headers
class:
import { Http, Headers, ... } from '@angular/http';
你可以试试。
headers.append("Content-Type", "application/x-www-form-urlencoded");
请求headers参数必须是"Content-Type"。因为请求headers参数区分大小写。
这是我的电子邮件功能的样子:
sendEmail(fromName, fromEmail, message) {
var headers = new Headers();
var recieverMail = "abc@cdf.com";//service@csc.kth.se"
var subject = "error report submitted by interactive screen"
var recieverName = "CSC SERVICE";
headers.append("Authorization", "Basic "+btoa("api:key-MY_API_KEY"));
headers.append("content-type", "application/x-www-form-urlencoded");
var url = "https://api.mailgun.net/v3/mymailgunserver.mailgun.org/messages ";
var body = "from="+fromName+"<"+fromEmail+">&to="+recieverName+"<"+recieverMail+">&subject="+subject+"&text="+message;
return this.http.post(url,body,{headers:headers});
}
从上图可以看出,我的请求也附上了text/plain header,这是为什么呢?
我的请求 body 被解释为 text/plain 而不是 url-encoded。有什么建议可以解决这个问题吗?
我想知道 HTTP header 名称是否不是 case-sensitive。您可以尝试以下方法:
let headers = new Headers();
headers.append("Content-Type", "application/x-www-form-urlencoded");
另一个可能的问题是您忘记导入 Headers
class:
import { Http, Headers, ... } from '@angular/http';
你可以试试。
headers.append("Content-Type", "application/x-www-form-urlencoded");
请求headers参数必须是"Content-Type"。因为请求headers参数区分大小写。