在HTTP Post中添加两个参数

时间:2017-12-27 06:58:27

标签: angular

我正在尝试使用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。

3 个答案:

答案 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})

希望它会有所帮助