jquery - .NetCore jquery 请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问
问题描述
如果我尝试向 Web api 控制器发送请求,我将在 Web 浏览器下收到错误消息:“请求的资源上不存在 'Access-Control-Allow-Origin' 标头。因此不允许访问 Origin 'null'。响应的 HTTP 状态代码为 500。”
这是我的 jquery 发布请求:
$.ajax({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
type: "POST",
url: "http://localhost:12345/api/xs/" + selectedId,
data: JSON.stringify(anyObj),
dataType: "json"
});
这是一个(web api)控制器:
[Route("api/[controller]")]
public class XSController : Controller
{
[HttpPost("{id}")]
[EnableCors("AllowAll")]
//[DisableCors()]
public async Task<IActionResult> Post(ushort id, [FromBody]AnyObjVM model)
{
}
}
和 startup.cs 文件:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
;
});
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseCors("AllowAll");
app.UseMvc();
}
请求头:
Accept: application/json
Accept-Encoding: gzip, deflate, br
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Content-Length: 166
Content-Type: application/json
Host: localhost:12345
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
我试图在 startup.cs 文件和控制器方法中启用/禁用 CORS。WebAPI 在 IIS Express 上的本地计算机上运行。一个调用 web api 的站点也在我的本地机器上——我手动运行该站点(单击站点文件),这就是为什么将 origin 设置为 null 的原因。通常我可以调用 web api 方法,有时不能。我还尝试使用选项--disable-web-security(可选--user-data-dir="d:/temp_chrome")运行chrome,但它没有改变任何东西。
我该如何解决这个问题?
解决方案
推荐阅读
- javascript - TypeError:在未实现接口位置的对象上调用了“分配”
- yii2 - Yii2 唯一验证者加入错误
- nginx - 如何在 IBM bluemix Cloud Foundry 上设置 nginx.conf 以进行单页应用程序路由以及如何设置 url 重写以支持 spa 路由?
- javascript - 如何使用 Django 显示日志
- node.js - NodeJS Socket.io - 发送有效,接收无效
- java - 如果在 Spring Boot 中同时出现多个请求,如何保持?
- blueprism - 无法在蓝色棱镜中加载 OTAClient.dll
- c# - 在 LINQ 中搜索列表时性能缓慢
- dart - Flutter-点击照片后如何将相机保持在屏幕上?
- asp.net-core - ASP .NET Core 在添加的每个项目上构建项目,如何禁用