"访问控制允许来源"请求的URL发出另一个请求时不工作(跨域Rquest)

时间:2015-07-16 08:48:39

标签: cross-domain

我在请求的控制器操作中添加了AllowOrigin自定义属性。请参阅以下功能:

public class **AllowCrossSiteJsonAttribute** : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
            base.OnActionExecuting(filterContext);<br>
        }
    }
    [**AllowCrossSiteJson**]
    public partial class OneBillSummaryController : UXPControllerBase
    {
        public OneBillSummaryController()
            : base(ApplicationType.Home,
                new QueryParameters() { appliesTo="Index", parameters=
                new Dictionary<string, QueryParameter>() { 
                { "BAN", new QueryParameter() },
                { "SeqNo", new QueryParameter() },
                { "CID", new QueryParameter() {values="cc,ss,r"} },
                { "Lang", new QueryParameter() {values="fr,en"}},
                { "TID", new QueryParameter(){isOptional=true} }
            }})
        {
        }

直到这里,我才能得到结果,但是这个动作将进行表单身份验证(浏览器中已存在cookie),另一个URL / Controller-Action将调用(内部的另一个URL请求)。

我正在坚持以下错误。请参阅下面的SS:

  

XMLHttpRequest无法加载
  的 http://local-mybell-b.ids.int.bell.ca/UXP/Bill/OneBill/?BAN=101465254&SeqNo=0&CID=r&TID=&Lang=en 即可。   
该请求被重定向到   
&#39;的 http://local-mybell-b.ids.int.bell.ca/sso/ssoauth.aspx?ReturnUrl=%2fUXP%2fB ... D0%26CID%3DR%26TID%3D%26Lang%3den&安培; BAN = 101465254&安培;的SeqNo = 0&安培; CID =的R&amp; TID =安培;郎= EN &#39 ;,   
对于需要的跨源请求,不允许   预检。

为该身份验证操作添加了相同的CROS,但没有运气。

1 个答案:

答案 0 :(得分:0)

是的,我得到了答案Self,并发布了相同的内容。

根据要求在 web-config或控制器级别使用“Access-Control-Allow-Origin”,然后更改身份验证模式 web,因为我禁用了Windows身份验证模式。

  

只需在配置文件中更改Auth模式时,上面的代码就可以完美运行。

请参阅下面的SS。

enter image description here