javascript - Web Api C# .net 参数 POST

标签 javascript c# .net asp.net-web-api

我正在尝试通过 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/

相关文章:

javascript - 网站 href 链接不起作用,如何修复?

javascript - D3.js - Selection.call() 返回什么?

c# - 创建 AppDomain 并从子文件夹中的程序集调用方法

c# - 比较两个大小相等的位图以确定它们是否相同的最快方法是什么?

c# - 如何重构通用异常的使用?

.NET WinForms HTML 编辑器组件

C# 异常处理不适用于 ObjectDataSource

javascript - 满足条件时无法阻止表格

javascript - 如何在性能和内存使用方面比较 IFrame 和 Ajax 内容?

c# - 计算树中的后代