JSONP是为解决ajax无法跨域问题而生的。案例参考如下:
前台实现:
Html部分: <input type="button" id="btnGet" value="获取数据" /> JS部分: <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script type="text/javascript"> $("#btnGet").click(function () { $.ajax({ type: "get", url: "http://localhost:4815/Home/ProcessCallback", dataType: "jsonp", jsonp: "jsonpcallback", // 指定回调函数,这里名字可以为其他任意你喜欢的,比如callback,不过必须与下一行的GET参数一致 jsonpCallback:"homeCarouse" }); }); function homeCarouse(CarousePic) { alert(CarousePic.Name); alert(CarousePic.Email); } </script>
后台实现(这是写在另一个域下面(端口不通或域名不同)):
public string ProcessCallback() { if (Request.QueryString != null) { string jsonpCallback = Request.QueryString["jsonpcallback"]; ; var user = new { Name = "name1", Email =" email2" }; return jsonpCallback + "(" + new JavaScriptSerializer().Serialize(user) + ")"; } return "error"; }
参考博客:http://www.cnblogs.com/feichexia/archive/2012/12/07/jsonp_and_more.html