关于jsonpjsonp 回调指定对象方法怎么使用

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
一段简单的JSONP的代码
function show(json){ //函数show
alert(json.s);
//wd=web,搜索关键词为web;cb=show,回调函数为show
&script src="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=web&cb=show"&
/*src的请求结果为:
show({q:"web",p:false,s:["webqq","webqqu?? 1/2 ","web of science","web????","webstorm","webservice","???
(C)","websocket","weblogic","webex"]});
W3school对回调函数的定义:
callback 函数是一种以参数形式传递给另一个函数的函数。
结合w3school对回调函数的定义,函数show应该是传递给服务端某个处理程序中的函数的参数,并且由服务端的函数来调用show。
可是JSONP好像是通过src请求资源,然后返回一个函数调用,比如show({json数据})。
我也不知道该怎么表达了,我想不明白JSONP的回调函数是怎么回事,如果您知道,请您不吝赐教,谢谢!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
jsonp 只是script跨域特性利用
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不不不,回调函数不是在服务器端被调用的
客户端把回调函数的名字传送给服务端,
然后服务端生成一段js代码且代码中包含着对回调函数的调用,
然后服务端把这段代码返回给客户端,
然后客户端执行这段代码的过程中调用了回调函数,
然后你就可以在回调函数里面处理数据了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
回调函数没多大作用,说是作用,就是后端接收函数名,然后再返回。
如:Jquery的ajax的jsonp的函数名是可变的。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
function test(data) {
console.log(data.name);
&script src="http://127.0.0.1:8088/jsonp?callback=test"&&/script&
res.end('test({"name": "Monkey"})');
以上就实现了JSONP跨域,前端正常打印出了"Monkey"
我的问题是:这个后端返回的字符串函数test是怎么执行的?在前端什么时候、哪里执行的?搞不明白,请大神解答,感谢!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
放在那里都可以
只要请求到数据就会调用
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
简单来讲就是
前端调用接口&script src="http://127.0.0.1:8088/jsonp?callback=test"&&/script&+后端返回test({"name": "Monkey"})等同于&script&test({"name": "Monkey"})&/script&
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
下面那个script标签执行的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
因为script标签请求到的内容会自动执行。
就好像你引用一个jquery.js一样,请求到的也是一段jquery文本内容,请求完毕后就会执行该内容,页面中就有jquery了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
jsonp的原理就是动态加载js,从后端加载过来一段js,如你的test({"name": "Monkey"}),然后执行
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。关于jsonp回调方法怎么使用_百度知道
关于jsonp回调方法怎么使用
我有更好的答案
获取数据文件存放远程服务器(域名同跨域获取数据)则需要使用jsonp类型使用种类型创建查询字符串参数callback=参数加请求URL面服务器端应JSON数据前加调函数名便完效JSONP请求要指定调函数参数名取代默认callback通设置$.ajax()jsonp参数url本跨域跨域单纯设置jsonp已
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。jsonp进行跨域访问,回调函数作为参数返回值的二种类型
jsonp进行跨域访问,回调函数作为参数返回值的二种类型
第一种是返回字符串(大多是json串),这种方式需要我们自己封装一下结果的格式:callback+“(”+json +");";
@RequestMapping(value="/item/list",
produces=MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")
@ResponseBody
public String getItemCatList(String callback) {
CatResult catResult = itemCatService.getItemCatList();
//把pojo转换成字符串
String json = JsonUtils.objectToJson(catResult);
//拼装返回值
String result = callback + "(" + json + ");";
第二种是返回object,利用jackjson提供的封装类来返回数据
@RequestMapping("/item/list")
@ResponseBody
public Object getItemCatList(String callback) {
CatResult catResult = itemCatService.getItemCatList();
MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(catResult);
mappingJacksonValue.setJsonpFunction(callback);
return mappingJacksonV
没有更多推荐了,}

我要回帖

更多关于 jsonp 回调函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信