Asp.net 使用 Jsonp

简介

由于JavaScript的安全机制,ajax不支持跨域调用.所以出现了jsonp.

实现

服务器

public string Jsonp(string name)
{
string result = string.Format("Welcome {0}", name);
StringBuilder sb = new StringBuilder();
string callback = Request.QueryString["callback"] != null ? Request.QueryString["callback"] : "?";
JavaScriptSerializer js = new JavaScriptSerializer();
sb.Append(callback + "(");
sb.Append(js.Serialize(result));
sb.Append(");");

//可以直接使用response
//Response.Write(sb.ToString());
//不可以返回json格式数据,返回必须是字符串格式,可以试试改为返回JsonResult,在开发者模式中查看两者Response的区别
//return Json(sb.ToString(),JsonRequestBehavior.AllowGet);

return sb.ToString();
}

页面调用,在另一解决方案中实现


Tips

jsonp: 'callback',

json标识符可以自定义,不过前后端要保持一致

posted @ 2016-07-31 12:42  夕先生  阅读(423)  评论(0)    收藏  举报