我正在尝试通过 JavaScript 使用 C# 发送我的 Web api 的产品列表,但我的 API 不接受这些产品。我该如何通过?
这是我的模型
public class ProductModels
{
public int productId { get; set; }
public string description { get; set; }
public int quantity { get; set; }
public decimal amount { get; set; }
}
和我的 API 端点
[Route("api/pag_seguro/transactions/credit_card")]
public IHttpActionResult DoTransactionWithCreditCard(ProductModels[] products, string senderHash, string cardHash)
在 Javascript 中,我尝试像这样发送它
data.products = [{ "productId": 1, "description": "tupperware", "quantity": 1, "amount": 29.80 }];
$.ajax({
type: 'POST',
url: url + '/api/pag_seguro/transactions/credit_card?cardHash=' + cardHash + '&senderHash=' + senderHash,
data: data,
success: function (response) {
console.log(response);
},
dataType: 'json',
async: false
});
还是关于这个端点...如何将 senderHash 和 cardHash 作为 POST 参数发送,这样就不会出现在 Web url 中?
谢谢大家
最佳答案
您需要将请求中的内容类型设置为
contentType:"application/json"
此外,发送时使用 JSON.stringify
将数据转换为 JSON 格式。
试试这个代码:
$.ajax({
type: 'POST',
url: url + '/api/pag_seguro/transactions/credit_card?cardHash=' + cardHash + '&senderHash=' + senderHash,
data: JSON.stringify(data),
contentType: "application/json",
success: function (response) {
console.log(response);
},
dataType: 'json',
async: false
});
关于javascript - Web Api C# .net 参数 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42762810/