![]() |
忐忑的爆米花 · 审计署表彰全国内部审计先进集体和先进工作者· 3 月前 · |
![]() |
谈吐大方的毛衣 · 新华网:德英法科学家捧回国际科技合作大奖 ...· 9 月前 · |
![]() |
大方的烤面包 · 威海:荣成59个“少年宫”搬到校园内外· 1 年前 · |
![]() |
谦和的电影票 · 《病娇大佬总想独占小哭包》 - 哔哩哔哩· 1 年前 · |
![]() |
纯真的芒果 · 影评大赛·哆啦A梦大雄的宇宙小战争2021 ...· 1 年前 · |
关于JSONP的概念以及为什么要使用JSONP您可以参考 JSONP教程 ,本文的重点在于演示下在JQUERY中的Ajax方法怎样通过JSONP进行远程调用。
首先介绍下$.ajax的参数:
服务器端我们采用MVC的ACTION来返回数据
代码如下:
public class HomeController : Controller
// GET: /Home/
public ActionResult Index()
returnView();
public ActionResult ReturnJson()
string callback = Request.QueryString["callback"];
string json = "{'name':'张三','age':'20'}";
string result = string.Format("{0}({1})", callback, json);
returnContent(result);
}
客户端使用jsonp来传输数据
代码如下:
@{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; }
<script src="~/Scripts/jquery-1.7.1.min.js"type="text/javascript"> </script>
<script type="text/javascript">
functionSendData()
$.ajax({
type: "get",
async: false,
url: "/home/ReturnJson",
dataType: "jsonp",
success: function(data){
alert(data.name);
error: function(){
alert('fail');
</script>
<input type="button" value="提交" onclick="SendData();"/>
点击提交按钮后,发现服务器端的Request.QueryString"callback"返回一个随机函数名。这样就被设置成JSONP格式来传递数据了
可以在传递过程中自定义函数名,只要使用jsonpCallback参数就可以了。