向WebApi发出Ajax请求时出现错误0

时间:2018-08-19 16:43:03

标签: ajax asp.net-mvc bootstrap-4 asp.net-web-api2

我正在向WebApi发出 ajax请求,一旦页面加载,我在回调中得到错误0,而当URL击中WebApi时我正在选择正确的json。

当我检查chrome's consol标签中的页面时,表明URL已更改。我在我的代码中请求http://localhost:1960/api/Product/GetProducts,在chrome中,它更改为http://localhost:1960/api/Product/GetProducts?_=1534696122451

请提出应该做什么。

代码

var dataTable = $('#productTable').DataTable({
        "ajax": {
            "url": 'http://localhost:1960/api/Product/GetProducts',
            "type": "GET",
            "datatype": "json",
            //"success": function (result, status, xhr) {
            //    alert("Success : " + result);
            //},
            "error": function (xhr, status, error) {
                alert("Failed : Result: " + status + " - " + error + " | " + xhr.status + " - " + xhr.statusText);
            }
        },

        "columns": [
            { "data": "productName", "autoWidth": true },
            { "data": "productCode", "autoWidth": true },
            { "data": "productDescription", "autoWidth": true },
        ],

        "language": {
            "emptyTable": "No Data found, Please Click on <b><i>Add New</i></b> Button to Add Product Record in System."
        }
    }); 

This is state that my client mvc project is hosted in different port.难道就是问题所在?

1 个答案:

答案 0 :(得分:0)

为安全起见,浏览器会阻止任何源于不同来源的非安全(http)请求。在这里,您的Web api托管在端口1960上,而您的Web应用程序则托管在2640上,这就是您收到此错误的原因。

您可以通过此链接来了解有关CORS的更多信息,以及如何使您的API能够接收CORS请求:

Enabling Cross-Origin Requests in ASP.NET Web API 2