急躁的伏特加 · 用python生成一段代码 ...· 4 月前 · |
讲道义的小熊猫 · PHP简单实现图片格式转换(jpg转png, ...· 5 月前 · |
慷慨的烤面包 · SQL语句的常见问题和解决方法_实时数仓 ...· 6 月前 · |
重情义的甘蔗 · sqlalchemy根据表名动态创建mode ...· 1 年前 · |
痛苦的投影仪 · close error http ...· 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参数就可以了。