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 数据,输出回调函数
}