使用JSONP解决跨域问题-代码示例
博客专区 > jtn 的博客 > 博客详情
使用JSONP解决跨域问题-代码示例
jtn 发表于3年前
使用JSONP解决跨域问题-代码示例
  • 发表于 3年前
  • 阅读 116
  • 收藏 11
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

  前段时间用JSONP解决了跨域问题,现在不用了,把代码思路记下来,今后说不定还用得上。 


JS代码

//查询公告数据

    function recentpost(){
$.getJSON(cmsUrl+"/post/recentpost.json?jsoncallback=?",{count:count,categoryid:categoryid}, function(data){
   //
});

}

JS代码,主要就是使用jquery的getJSON方法。

更多描述,来自jquery 文档。

jQuery.getJSON(url, [data], [callback])

概述

通过 HTTP GET 请求载入 JSON 数据。

在 jQuery 1.2 中,您可以通过使用JSONP形式的回调函数来加载其他网域的JSON数据,如 "myurl?callback=?"。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。 注意:此行以后的代码将在这个回调函数执行前执行。

参数

url,[data],[callback]String,Map,FunctionV1.0

url:发送请求地址。

data:待发送 Key/value 参数。

callback:载入成功时回调函数。

示例

描述:

从 Flickr JSONP API 载入 4 张最新的关于猫的图片。

HTML 代码:
<div id="images"></div>
jQuery 代码:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format
=json&jsoncallback=?", function(data){
  $.each(data.items, function(i,item){
    $("<img/>").attr("src", item.media.m).appendTo("#images");
    if ( i == 3 ) return false;
  });
});

描述:

从 test.js 载入 JSON 数据并显示 JSON 数据中一个 name 字段数据。

jQuery 代码:
$.getJSON("test.js", function(json){
  alert("JSON Data: " + json.users[3].name);
});

描述:

从 test.js 载入 JSON 数据,附加参数,显示 JSON 数据中一个 name 字段数据。

jQuery 代码:
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
  alert("JSON Data: " + json.users[3].name);
});




Java代码

@RequestMapping(value = "recentpost")
public void recentPost(Integer categoryid, String jsoncallback,
Integer count, Model model, HttpServletResponse response) {
if (categoryid == null) {
categoryid = DEFAULT_CATEGORY;
}
List<Post> list = postService.listRecent(categoryid, count);
// JSONObject json = new JSONObject();
// json.put("list", list);
// String str=json.toJSONString();
// model.addAttribute("callback", list);
String str = JSONObject.toJSONString(list);
str = jsoncallback + "(" + str + ")";
super.returnMessage(response, str);
}

使用JSON库,把jsonp格式的字符串发送到前端。记得函数名称jsoncallback这个参数。

标签: jsonp 跨域 jquery
共有 人打赏支持
粉丝 12
博文 879
码字总数 879609
×
jtn
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: