jquery中的ajax方法怎样通过JSONP进行远程调用


Posted in Javascript onMay 04, 2014

关于JSONP的概念和为什么要使用JSONP网上已经有很多教程,这一节主要演示下在JQUERY中的ajax方法怎样通过JSONP进行远程调用

首先介绍下$.ajax的参数

type:请求方式 GET/POST

url:请求地址

async:布尔类型,默认为true 表示请求是否为异步,如果为false表示为同步。

dataType:返回的数据类型

jsonp:传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)

jsonpCallback:自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据

success:调用成功执行的函数

error:异常处理函数

1.示例1

服务器端我们采用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格式来传递数据了

2.自定义函数名

可以在传递过程中自定义函数名,只要使用jsonpCallback参数就可以了。

jsonp:表示传递的参数,默认为callback,我们也可以自定义,服务器段通过此参数,获取自定义的函数名称,服务器这样获取 Request.QueryString["callback"]

jsonpCallback表示传递的参数值,也就是回调的函数名称,这是自定义的名称。

<script type="text/javascript"> 
functionSendData() { 
$.ajax({ 
type: "get", 
async: false, 
url: "/home/ReturnJson", 
dataType: "jsonp", 
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) 
jsonpCallback: "receive",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 
success: function(data) { 
alert(data.name); 
}, 
error: function() { 
alert('fail'); 
} 
}); 
} functionreceive(data) { 
alert(data.age); 
} 
</script>
Javascript 相关文章推荐
jquery插件之easing使用
Aug 19 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
Sep 10 Javascript
jQuery实现TAB选项卡切换特效简单演示
Mar 04 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
Aug 25 Javascript
细说webpack源码之compile流程-入口函数run
Dec 26 Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 Javascript
详解vue开发中调用微信jssdk的问题
Apr 16 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
Jun 20 Javascript
Vue组件实现触底判断
Jun 26 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 21 Javascript
微信小程序canvas分享海报功能
Oct 31 Javascript
layui前端时间戳转化实例
Nov 15 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 #Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 #Javascript
IE6-8中Date不支持toISOString的修复方法
May 04 #Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
May 04 #Javascript
JavaScript获取图片的原始尺寸以宽度为例
May 04 #Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 #Javascript
使用JavaScript获取电池状态的方法
May 03 #Javascript
You might like
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
动态读取JSON解析键值对的方法
2014/06/03 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
python内存管理分析
2015/04/08 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
python requests post多层字典的方法
2018/12/27 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python短信轰炸的代码
2020/03/25 Python
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
C面试题
2015/10/08 面试题
大三自我鉴定范文
2013/10/05 职场文书
业务助理岗位职责
2013/11/18 职场文书
实验教师岗位职责
2014/02/13 职场文书
寄语是什么意思
2014/04/10 职场文书
任命书范本大全
2014/06/06 职场文书
幼儿生日活动方案
2014/08/27 职场文书
优秀教师个人总结
2015/02/11 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
红色影片观后感
2015/06/18 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书