C# asp.net web api AJAX状态0
我正在尝试使用asp.net Web API创建基本REST帖子,但它返回错误状态:0。此外,它看起来还失败了AJAX请求 我的控制器:C# asp.net web api AJAX状态0,c#,asp.net,ajax,asp.net-web-api,C#,Asp.net,Ajax,Asp.net Web Api,我正在尝试使用asp.net Web API创建基本REST帖子,但它返回错误状态:0。此外,它看起来还失败了AJAX请求 我的控制器: [HttpPost] public myData Post( myData m) { return m; } 我的班级: public class CLData { public string FirstName { get; set; } public string LastName { get; s
[HttpPost]
public myData Post( myData m)
{
return m;
}
我的班级:
public class CLData
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
我的HTML请求:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<script>
//form encoded data
var dataType = 'application/x-www-form-urlencoded; charset=utf-8';
var data = $('form').serialize();
//JSON data
var dataType = 'application/json; charset=utf-8';
var data = {
FirstName: 'Andrew',
LastName: 'Lock',
Age: 31
}
console.log('Submitting form...');
$.ajax({
type: 'POST',
url: 'http://localhost:52884/api/contact',
dataType: 'json',
contentType: dataType,
data: data,
success: function(result) {
console.log('Data received: ');
console.log(result);
},
error: function(error){
console.log('Error: ');
console.log(error);
}
});
</script>
</body>
</html>
有人知道我做错了什么吗?我只是想学习Web API,这就是为什么这个示例如此简单。如果您的应用程序不能同时提供Web视图和API端点,则需要启用跨源请求。为此,您需要在WebAPI项目中配置Cors。您可以在网站上找到如何执行此操作的详细分类 但是,要点是安装nuget pacakge Microsoft.AspNet.WebApi.Cors。您可以通过执行安装包Microsoft.AspNet.WebApi.Cors来执行此操作。从那里,您将更新WebApiConfig注册方法,以包括config.EnableCors;在顶端
接下来,您将使用[EnableCors]属性装饰控制器类。从那里,您应该能够发出跨源请求。作为一个实验,尝试将“url:”替换为“url:”/api/contact”。假设您的应用程序实际上同时承载API端点和服务页面。如果它不提供页面服务,您需要在应用程序中启用跨源请求。仍然存在相同的问题。谢谢。它避免了跨原点警告,但我仍然从AJAX错误方法中得到错误。看看这个
Submitting form..
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:52884/api/contact. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Error:
Object with status: 0