【问题标题】:Passing object to MVC 4 Web API using jQuery AJAX使用 jQuery AJAX 将对象传递给 MVC 4 Web API
【发布时间】:2012-09-25 15:59:26
【问题描述】:

我正在尝试创建一个可以接受对象作为参数的 Web api...我从下面发布的简单示例开始,但出现内部服务器错误

我的 AJAX:

var order = {
    "id": 1012345,
    "carrier": "works",
    "created_at": "works",
    "description": "works",
    "etd": "works",
    "invoice_id": 12,
    "origin_id": 13,
    "po_number": "101",
    "shipped_on": "works",
    "status": "works",
    "updated_at": "works"
};

$.ajax({
    url: "http://localhost:3495/api/NTOrder/",
    type: "GET",
    data: { inputOrder: order },
    beforeSend: function(xhr){
        xhr.setRequestHeader('username', 'user4');
        xhr.setRequestHeader('password', 'secret');
    },
    success: function(data) { 
        alert('Success!' + JSON.stringify(data)); $('.result').html(data); 
    }
});

在 Chrome 中,当我尝试访问 url 时,它给了我 500 Internal Server Error:

http://localhost:3495/api/NTOrder/?inputOrder%5Bid%5D=1012345&inputOrder%5Bcarrier%5D=works&inputOrder%5Bcreated_at%5D=works&inputOrder%5Bdescription%5D=works&inputOrder%5Betd%5D=works&inputOrder%5Binvoice_id%5D=12&inputOrder%5Borigin_id%5D=13&inputOrder%5Bpo_number%5D=101&inputOrder%5Bshipped_on%5D=works&inputOrder%5Bstatus%5D=works&inputOrder%5Bupdated_at%5D=works

它是否错误地创建了 url 字符串?

我在MVC端的代码很简单:

public IEnumerable<NTOrder> GetOrders(NTOrder inputOrder)
{
    List<NTOrder> NTOrderList = new List<NTOrder>();
    NTOrderList.Add(inputOrder);
    return NTOrderList;
}

NTOrder 类非常简单,只包含原始 AJAX 中使用的属性。

【问题讨论】:

    标签: asp.net asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    如果您可以切换到 POST 而不是 GET,您可以这样做。你可能会有更好的运气。

    $.ajax({
        url: "http://localhost:3495/api/NTOrder/",
        type: "POST",
        data: JSON.stringify({ inputOrder: order }),
        dataType: "json",
        beforeSend: function(xhr){
            xhr.setRequestHeader('username', 'user4');
            xhr.setRequestHeader('password', 'secret');
        },
        success: function(data) { 
            alert('Success!' + JSON.stringify(data)); $('.result').html(data); 
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-09
      • 2014-10-10
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 2012-10-25
      • 2019-02-16
      • 2019-05-14
      相关资源
      最近更新 更多