c# - Web api 代码 - 加载失败 - 访问控制允许来源
问题描述
我的网站运行良好。基本上我有一些调用 webapi 来获取结果并绑定图表的 html 页面。api 只发送 json 数据,其余的在脚本标签中的 html 页面上完成。
现在我必须将我的一些网站页面集成到另一个网站中,所以我创建了 html 页面,但是当我运行它们时,我收到错误 - 请求的资源上存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问。
mvc代码:
[HttpGet, Route("DevD"), OutputCache(Duration = 5, VaryByHeader = "Origin")]
public ActionResult GetDevD(double value1)
{
return Json(_devD, JsonRequestBehavior.AllowGet);
}
private static object _devD;
private static object GetDevD()
{
dynamic trend = Trend;
return new
{
trend?.day,
volume = new abc(GetLastTick("JZ"))
};
}
在 global.ascx
protected void Application_BeginRequest()
{
var origin = Request.Headers["Origin"];
if (!string.IsNullOrWhiteSpace(origin) && (origin.EndsWith("abc.com") || origin.EndsWith("www.watrade.net")))
{
Response.Headers.Add("Access-Control-Allow-Origin", origin);
Response.Headers.Add("Access-Control-Allow-Headers", "accept, content-type");
}
if (Request.HttpMethod != "OPTIONS") return;
Response.End();
}
我不想使用任何插件。我应该在此代码中进行哪些更改,以便它也可以在我的网站中运行并且也可以集成到另一个网站中。
解决方案
推荐阅读
- angular8 - 错误类型错误:无法读取未定义的属性“x1”。Cytoscape.js 和 Angular 8 项目
- python - Selenium Python 3,Chrome 隐身关闭 cookie 弹出窗口
- java - SymmetricWebServer 不在嵌入式模式下创建 SYM* 表(Spring Boot)
- python - python mailmerge项目中的空白数据字段
- android - android studio GIT(自动更正/建议)覆盖方法不起作用
- javascript - 尝试使用 Dropzone.js 将多个文件上传到 Amazon S3 时,只有最后一个文件被上传到 AWS S3
- html - 如何将每个循环值放入 django 中的单独 div
- promise - discord.js .msg.channel.send().then 承诺不工作
- python - 有没有办法让列表处理和 np.array 一样快?
- javascript - 从单独的 Vue JS 前端使用 Hapi JS API。request.payload 未定义