Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于ODataWebAPI的JQuery Ajax Post数据_Jquery_Json_Ajax_Asp.net Web Api2_Odata - Fatal编程技术网

用于ODataWebAPI的JQuery Ajax Post数据

用于ODataWebAPI的JQuery Ajax Post数据,jquery,json,ajax,asp.net-web-api2,odata,Jquery,Json,Ajax,Asp.net Web Api2,Odata,我使用下面的链接创建了一个ODataWebAPI 因此,我的解决方案包含两个项目 ODATAWebApi 网络应用 请查找代码WebApp code 我能够通过下面的代码使用数据并将其发布到ODataWebAPI index.html 使用上述方法,我们能够将数据发布到ODataWebAPI,但我想通过json对象发布数据,如下所示,但它不起作用 产品模型 Json产品模型 使用上述方法,我无法将数据发布到ODataWebAPI。 请帮助我或让我知道将数据发布到odata web api的任何

我使用下面的链接创建了一个ODataWebAPI

因此,我的解决方案包含两个项目

  • ODATAWebApi
  • 网络应用
  • 请查找代码WebApp code 我能够通过下面的代码使用数据并将其发布到ODataWebAPI

    index.html

    使用上述方法,我们能够将数据发布到ODataWebAPI,但我想通过json对象发布数据,如下所示,但它不起作用

    产品模型

    Json产品模型

    使用上述方法,我无法将数据发布到ODataWebAPI。
    请帮助我或让我知道将数据发布到odata web api的任何其他方式。

    数据类型
    指的是在服务器未设置
    内容类型
    标题的情况下,服务器的响应。您通常根本不需要使用此参数

    contentType
    指您发送到服务器的内容,这是您需要设置的内容

    $("#btnPostData").bind("click", function () {
        $.ajax({
            url: 'https://localhost:44340/api/Products',
            type: 'POST',
            crossDomain: true,
            contentType: 'application/json',
            data: JSON.stringify({
                Id: null,
                Name: $("#txtName").val(),
                Price: $("#txtPrice").val(),
                Category: $("#txtCategory").val()
            })
        }).done(function (data) {
            alert('Data: ' + JSON.stringify(data));
        }).fail(function (request, error) {
            console.log("Request: " + JSON.stringify(request));
            alert("Request: " + JSON.stringify(request));
        });
    });
    
    除非您明确指定要发送JSON,否则您的数据将被标记为content type
    application/x-www-form-urlencoded
    ,这将在需要JSON时关闭服务器

    $("#btnPostData").bind("click", function () {
            var Name = $("#txtName").val();
            var Price = $("#txtPrice").val();
            var Category = $("#txtCategory").val();
    
        //I am creating a query string to post the data to odata web api
            var PostData = "Name=" + Name + "&Price=" + Price + "&Category=" + Category;
    
            $.ajax({
                url: 'https://localhost:44340/api/Products',
                type: 'POST',
                crossDomain: true,
                dataType: 'json',
                data:PostData,
                success: function (data) {
                    alert('Data: ' + data);
                },
                error: function (request, error) {
                    console.log("Request: " + JSON.stringify(request));
                    alert("Request: " + JSON.stringify(request));
                }
            });
        });
    
    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public decimal Price { get; set; }
        public string Category { get; set; }
    }
    
    $("#btnPostData2").bind("click", function () {     
            var Product = {
                Id : null,
                Name: $("#txtName").val(),
                Price: $("#txtPrice").val(),
                Category: $("#txtCategory").val()
            }
    
            $.ajax({
                url: 'https://localhost:44340/api/Products',
                type: 'POST',
                crossDomain: true,
                dataType: 'json',
                data: JSON.stringify(Product),
                success: function (data) {
                    alert('Data: ' + data);
                },
                error: function (request, error) {
                    console.log("Request: " + JSON.stringify(request));
                    alert("Request: " + JSON.stringify(request));
                }
            });
        });
    
    $("#btnPostData").bind("click", function () {
        $.ajax({
            url: 'https://localhost:44340/api/Products',
            type: 'POST',
            crossDomain: true,
            contentType: 'application/json',
            data: JSON.stringify({
                Id: null,
                Name: $("#txtName").val(),
                Price: $("#txtPrice").val(),
                Category: $("#txtCategory").val()
            })
        }).done(function (data) {
            alert('Data: ' + JSON.stringify(data));
        }).fail(function (request, error) {
            console.log("Request: " + JSON.stringify(request));
            alert("Request: " + JSON.stringify(request));
        });
    });