zoukankan      html  css  js  c++  java
  • 跨域

    chrome iframe方案

     <script type="text/javascript">
            //var $ = jQuery;
            try{
                document.domain = "xlobo.com";
            }
            catch(ex){
    
            }
        </script>
    

      

     System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
    

      

     <httpProtocol>
          <customHeaders>
            <add name="X-Frame-Options" value="ALLOW-FROM:http://localhost:18592/Home/Index" />
            <add name="Access-Control-Allow-Origin" value="Access-Control-Allow-Origin: *" />
          </customHeaders>
        </httpProtocol>
    

    jsonp

    <script type="text/javascript">
            window.onload = function () {
                $.ajax({
                    type: "GET",
                    url: "http://localhost:18592/Home/Index2?callback=?",    //跨域url
                    dataType: "jsonp",  //指定 jsonp 请求
                    success: function (data) {
                        location.href = "/Home/SetCookie?id=" + data.ID + "&name=" + data.Name;
                    }
                });
            };
    

      

       public ActionResult SetCookie(string id = "", string name = "")
            {
                if (id != "" && name != "")
                {
                    var cookie = new HttpCookie(CookieName) { Value = string.Format("{0},{1}", id, System.Web.HttpContext.Current.Server.UrlEncode(name)) };
                    ControllerContext.HttpContext.Response.Cookies.Add(cookie);
                }
                return RedirectToAction("Index");
            }
    

      

    public class JSONPResult : JsonResult
            {
                public JSONPResult()
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet;
                }
    
                public string Callback { get; set; }
    
                ///<summary>
                ///对操作结果进行处理
                ///</summary>
    
                ///<paramname="context"></param>
    
                public override void ExecuteResult(ControllerContext context)
                {
                    var httpContext = context.HttpContext;
                    var callBack = Callback;
    
                    if (string.IsNullOrWhiteSpace(callBack))
                        callBack = httpContext.Request["callback"]; //获得客户端提交的回调函数名称
    
                    httpContext.Response.ContentType = "application/json";
    
                    // 返回客户端定义的回调函数
                    httpContext.Response.Write(callBack + "(");
                    httpContext.Response.Write(Data);          //Data 是服务器返回的数据        
                    httpContext.Response.Write(");");            //将函数输出给客户端,由客户端执行
                }
            }
    
            public ActionResult Index2()
            {
                //获取回调函数名
                string callback = HttpContext.Request.QueryString["callback"];
    
                var cookie = ControllerContext.HttpContext.Request.Cookies[CookieName];
                string Id = System.Web.HttpContext.Current.Server.UrlDecode(cookie.Value.Split(',')[0]);
                string nm = System.Web.HttpContext.Current.Server.UrlDecode(cookie.Value.Split(',')[1]);
    
                var str = new StringBuilder();
                str.Append("{");
                str.Append(""ID":"" + Id + """);
                str.Append(",");
                str.Append(""Name":"" + nm + """);
                str.Append("}");
    
                return new JSONPResult { Data = str };  //返回 jsonp 数据,输出回调函数
            }
    

      

  • 相关阅读:
    bash帮助文档简单学习;bash手册翻译
    jmeter的master、slave模型启动方法
    如何查看pip安装包的所有版本;以及ipython的安装
    简单过下bash/sh脚本基本知识吧
    Celery 启动报错 can_read() got an unexpected keyword argument timeout
    paramiko执行命令超时的问题
    远程的jmeter自动执行完,如何回调通知被调用者“结束”状态
    记录一下:关于mysql数据误删除恢复的问题
    数据库Sharding的基本思想和切分策略
    数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
  • 原文地址:https://www.cnblogs.com/gavinhuang/p/5458175.html
Copyright © 2011-2022 走看看