Post ASP.NET Web API中的跨源请求
我的mvc应用程序中有一个api控制器,我试图将数据发布到api,但我遇到了ASP.NET Web api中跨源请求的问题。这是我的错误 无法加载XMLHttpRequest。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。响应的HTTP状态代码为405 我已在ASP.NET Web API 2中安装了跨源请求 我的api代码Post ASP.NET Web API中的跨源请求,post,asp.net-web-api,cors,Post,Asp.net Web Api,Cors,我的mvc应用程序中有一个api控制器,我试图将数据发布到api,但我遇到了ASP.NET Web api中跨源请求的问题。这是我的错误 无法加载XMLHttpRequest。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。响应的HTTP状态代码为405 我已在ASP.NET Web API 2中安装了跨源请求 我的api代码 namespace Restaurant.Controllers{ [EnableCors(origins: "
namespace Restaurant.Controllers{
[EnableCors(origins: "http://192.168.0.44:100", headers: "*", methods: "get,post")]
public class OrderController : ApiController
{
public Test Post( string name,int age)
{
Test test = new Test()
{
Name=name,
Age=age
};
db.test.Add(test);
db.SaveChanges();
return test;
}}
WebApiConfig
public static void Register(HttpConfiguration config)
{
config.EnableCors();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });
config.Formatters.Add(new BrowserJsonFormatter());
}
看法
函数add(){
var DatatTest={
名称:$(“#txtname”).val(),
年龄:$(“#txtage”).val()
};
$.ajax({
网址:'http://192.168.0.44:100/api/name',
键入:“Post”,
数据:JSON.stringify(DatatTest),
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
警报(“确定”);},
错误:函数(x,y,z){
警报(“错误”);}
});
}
web.config
httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
config.EnableCors();
httprotocol>
. 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。响应的HTTP状态代码为500
我的错误在哪里?尝试以下步骤
在web.config中
httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
config.EnableCors();
在控制器中添加以下内容
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
注意:源地址应该是客户端地址,而不是服务器地址,请确保不要在源URL的末尾添加黑色斜杠。尝试以下步骤
在web.config中
httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
config.EnableCors();
在控制器中添加以下内容
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
注意:源地址应该是客户端地址,而不是服务器地址,请确保不要在源URL的末尾添加黑色斜杠。调用web API时显示错误。背后有两个原因
科尔斯
标题
我们可以在webapiconfig.cs文件中启用CORS
CONFIG.EnableCors(cors);
要解析标题,我们应该允许WEBAPI允许所有标题,如下所示
EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
调用web API时显示的错误。背后有两个原因
科尔斯
标题
我们可以在webapiconfig.cs文件中启用CORS
CONFIG.EnableCors(cors);
要解析标题,我们应该允许WEBAPI允许所有标题,如下所示
EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
我希望我已经这样做了。我可以使用IP作为源代码吗?我希望我已经这样做了。我可以使用IP作为源代码吗?