如何在http.put请求中使用路径参数

时间:2019-05-21 16:23:24

标签: javascript angularjs xmlhttprequest put path-parameter

我想知道如何编写在路径中发送参数的PUT请求。例如,开发人员将PUT请求的URL从使用查询字符串作为参数更改为在路径中使用参数。当将参数作为查询发送时,我做了这样的事情:

let payload = {
   product_id: this.productId,
   customer_id: this.customerId,
   userGuide_id: this.userGuide
}

return this._$q((resolve, reject) => {
   this._$http.put(‘/api/products/customer/mostRecent’, payload)
   .then((result) => resolve(result))
   .catch((err) => {
      reject(…));
   });
});

容易

但是,现在PUT请求已更改为在路径中使用参数,即:

PUT api/products/customer/{customerId}/product/{productId}

我该怎么写?

let customer_id = this.customerId,
    product_id = this.productId;

let payload = {
    user_GuideId: this.userGuideId
}

this._$http.put(“api/products/”+customer_id+“/product/”+product_id, payload);

以上可能是错误的,因为我不知道该怎么做。我很欣赏答案。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

this._$http.put(`api/products${customerId}/product/${productId}`, payload);

注意:我正在使用模板文字:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

谢谢!

已更新:

let payload = {
   product_id: this.productId,
   customer_id: this.customerId,
   userGuide_id: this.userGuide
}

return this._$q((resolve, reject) => {
   this._$http.put(`api/products${payload.customer_id}/product/${payload.product_id}`, payload);
   .then((result) => resolve(result))
   .catch((err) => {
      reject(…));
   });
});