Jsonp跨域问题

前端代码:

 $.ajax({
            type: "GET",
            cache: false,
            url: "http://servername/webservice/webservice.asmx/GetSingleInfo",
            data: { strCparent: $("#Equipment_ID").val() },
            dataType: "jsonp",
            //jsonp: "callback",
            jsonpCallback: "OnGetMemberSuccessByjsonp"
        });

后端代码:

   string ret = string.Empty;
    HttpContext.Current.Response.ContentType = "application/json;charset=utf-8";
    string jsonCallBackFunName = HttpContext.Current.Request.Params["callback"].ToString();
    //string jsonCallBackFunName1 = HttpContext.Current.Request.QueryString["callback"].Trim();
     
    //上面代码必须
    //中间代码执行自己的业务操作,可返回自己的任意信息(多数据类型)
 
    BLL.equipment eq_bll = new BLL.equipment();
    List<Model.equipment> equipmentList = new List<Model.equipment>();
    equipmentList = eq_bll.GetModelEquimentList(strCparent);
    ret = JsonConvert.SerializeObject(equipmentList);
 
    //下面代码必须
    HttpContext.Current.Response.Write(string.Format("{0}({1})", jsonCallBackFunName, ret));
    HttpContext.Current.Response.End();

总结:

最重要的是获取自动生成的callback这个参数,然后返回去。

 

posted @ 2017-09-16 17:44  科技改变未来☆  阅读(166)  评论(0编辑  收藏  举报