首页新闻找找看学习计划

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

1
悬赏园豆:10 [已解决问题] 解决于 2013-08-07 15:15

想利用WEBAPI给分站提供数据接口,同事分站也能提供操作回传给主站更改状态等动作,分站主要通过Js调用主站接口,有什么好的方法或者例子,谁能给推荐一个

狼性法则的主页 狼性法则 | 初学一级 | 园豆:133
提问于:2013-08-07 11:01
< >
分享
最佳答案
0
//派生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) {

});
收获园豆:10
写代码的小2B | 老鸟四级 |园豆:4346 | 2013-08-07 15:12

能跨域请求action进行操作吗?比如在分站登陆,主站也同时登陆,用主站的登陆方法

狼性法则 | 园豆:133 (初学一级) | 2013-08-07 16:08

@狼性法则: 当然,你仔细看上面的代码。上面有判断是否存在JSONP参数,如果不存在,那么直接返回JSON。

写代码的小2B | 园豆:4346 (老鸟四级) | 2013-08-07 16:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册