在 MVC 中使用 Access-Control-Allow-Origin

Posted

技术标签:

【中文标题】在 MVC 中使用 Access-Control-Allow-Origin【英文标题】:Using Access-Control-Allow-Origin with MVC 【发布时间】:2013-05-18 17:15:16 【问题描述】:

我正在尝试使用带有 JQuery 页面的简单 html 和另一个域上的 MVC 站点进行简单的跨域调用。

我的工作就是以此为基础的......

Setting Access-Control-Allow-Origin in ASP.Net MVC - simplest possible method

这是我的简单站点中的调用...

    <script type="text/javascript">
        $(function () 
            $.get("http://example.com:20874/Home/YourMethod", function (data) 
                alert(data);
            );

        );
    </script>

这是我的控制器...属性代码刚刚从其他问题粘贴...

public class HomeController : Controller

    public ActionResult Index()
    
        return View();
    

    [AllowCrossSiteJson]
    public ActionResult YourMethod()
    
        return Json(@"""title"": ""example glossary""");
    


但是调用站点错误...

XMLHttpRequest 无法加载 http://example.com:20874/Home/YourMethod。 Access-Control-Allow-Origin 不允许来源http://example.com:90。

有人可以帮忙吗?

【问题讨论】:

你在哪里设置必要的 HTTP 标头? 我相信 [AllowCrossSiteJson] 属性应该这样做。 【参考方案1】:

放弃属性,就这么干了……

    public ActionResult YourMethod()
    
        HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", "*");
        return Json(@"""title"": ""example glossary""");
    

【讨论】:

以上是关于在 MVC 中使用 Access-Control-Allow-Origin的主要内容,如果未能解决你的问题,请参考以下文章

尽管我的服务器启用了标头,但 AJAX CORS 请求失败 - (Access-Control*)

Spring Security(三十):9.5 Access-Control (Authorization) in Spring Security

如何在 Spring Boot 中更改允许的标头

离子4中的Cors问题

如何在ajax中解决跨域[重复]

XMLHttprequest 无法使用 twitch.tv api