我正在尝试使用MEAN中的HTTP post从客户端向服务器端发送两个值。我可以添加一个,但是当我尝试添加两个值时,我收到错误。
这是我的代码:
var emailid = 'emailid=' + ctinvite.emp_email;
var phone= 'phone=' + ctinvite.emp_phone;
headers.append('Content-Type', 'application/X-www-form-urlencoded');
this.http.post('http://localhost:3000/sendmail',emailid, {headers: headers})
我添加了emailid,它运作正常。现在我想在HTTP Post中添加phoneid和emailid。
答案 0 :(得分:2)
您应该使用如下的复杂对象
var emailid = 'emailid=' + ctinvite.emp_email;
var phone= 'phone=' + ctinvite.emp_phone;\
var email_phone ={
emailid : emailid,
phone :phone
}
headers.append('Content-Type', 'application/X-www-form-urlencoded');
this.http.post('http://localhost:3000/sendmail',email_phone, {headers: headers})
答案 1 :(得分:1)
如果您要使用这样的参数创建一个网址:
http://url.com/user?emailid=12&phone=2234234234
比使用HttpParams
(或URLSearchParams
旧版(< 4.3)Angular版本)。 Here你可以找到更多。
以下是基于您的问题数据的示例:
Angular v4.3 +使用新的HttpClientModule:
let httpParams = new HttpParams();
httpParams = httpParams.set('emailid', ctinvite.emp_email.toString());
httpParams = httpParams.set('phone', ctinvite.emp_phone.toString());
headers.append('Content-Type', 'application/X-www-form-urlencoded');
this.http.post('http://localhost:3000/sendmail', null, {headers: headers, params: httpParams});
使用旧HttpModule的Angular v4.3及更早版本:
let params = new URLSearchParams();
params.set('emailid', ctinvite.emp_email.toString());
params.set('phone', ctinvite.emp_phone.toString());
headers.append('Content-Type', 'application/X-www-form-urlencoded');
this.http.post('http://localhost:3000/sendmail', null, {search: params, headers: headers});
如果您要将数据发送给FormData
(我在您的标题设置中看到),那么以下是一个示例:
const formData = new FormData();
formData.append('emailid', ctinvite.emp_email.toString());
formData.append('phone', ctinvite.emp_phone.toString());
headers.append('Content-Type', 'application/X-www-form-urlencoded');
this.http.post('http://localhost:3000/sendmail',formData, {headers: headers});
如果您要将数据作为JSON对象发送给您,那么您应该这样做:
let jsonData = {
emailid: ctinvite.emp_email,
phone: ctinvite.emp_phone
}
headers.append('Content-Type', 'application/json');
this.http.post('http://localhost:3000/sendmail', JSON.stringify(jsonData), {headers: headers});
答案 2 :(得分:0)
使用以下代码:
var emailid = 'emailid=' + ctinvite.emp_email;
var phone= 'phone=' + ctinvite.emp_phone;
headers.append('Content-Type', 'application/X-www-form-urlencoded');
this.http.post(`http://localhost:3000/sendmail=${emailid}&phone=${phone}`, {headers: headers})
希望它会有所帮助