首页 > 解决方案 > 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();
}

我不想使用任何插件。我应该在此代码中进行哪些更改,以便它也可以在我的网站中运行并且也可以集成到另一个网站中。

标签: c#asp.net-mvc

解决方案


推荐阅读