谁给我推荐个MVC webapi利用js跨域访问的例子

2025-03-20 15:43:05
推荐回答(1个)
回答1:

/派生JsonpResult子类public class JsonpResult : ActionResult
    {
        public Object Data { get; set; }

        public JsonpResult(Object data)
        {
            Data = data;
        }

        public override void ExecuteResult(ControllerContext context)
        {
            context.HttpContext.Response.ContentType = "text/html; charset=utf-8";

            var js = new System.Web.Script.Serialization.JavaScriptSerializer();
       //注意这里
            String JSONP = context.HttpContext.Request.QueryString["JSONP"];
            if (String.IsNullOrEmpty(JSONP))
                context.HttpContext.Response.Write(js.Serialize(Data));
            else
                context.HttpContext.Response.Write(String.Format("{0}({1})", JSONP, js.Serialize(Data)));
        }
    }
//如果是跨域请求,那么这里的JSONP=?是必须的。(详见上面的派生子类)
$.getJSON("http://www.you.com?JSONP=?", function (result) {

});