我正在向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.
难道就是问题所在?
答案 0 :(得分:0)
为安全起见,浏览器会阻止任何源于不同来源的非安全(http)请求。在这里,您的Web api托管在端口1960
上,而您的Web应用程序则托管在2640
上,这就是您收到此错误的原因。
您可以通过此链接来了解有关CORS的更多信息,以及如何使您的API能够接收CORS请求: