使用jsonp形式跨域访问实现电商平台的左侧导航栏

电商平台有个具备的左侧商品类目的导航栏的结构。

通过jsonp跨域访问电商平台的后台管理系统商品分类。(主要实现后台Java代码)

实现基本步骤:

  1、在后台管理系统中准备相应的json数据。

    

 1 /**
 2  * 前台需要的类目json数据
 3  * @author Administrator
 4  *
 5  */
 6 public class ItemCatResult {
 7     @JsonProperty("data")
 8     private List<ItemCatData> itemCats = new ArrayList<ItemCatData>();
 9
10     public List<ItemCatData> getItemCats() {
11         return itemCats;
12     }
13
14     public void setItemCats(List<ItemCatData> itemCats) {
15         this.itemCats = itemCats;
16     }
17 }
 1 @Autowired
 2 private ItemCatMapper itemCatMapper;
 3 @Autowired
 4 private RedisService redisService;    //注入redis伪service
 5 private static final ObjectMapper MAPPER = new ObjectMapper();
 6
 7 //为前台来准备数据
 8 public ItemCatResult queryCats(){
 9
10     /* 步骤:
11      * 1、获取所有的数据
12      * 2、一次循环获取当前节点的所有的子节点
13      * 3、三级遍历组织数据
14      */
15     List<ItemCat> cats = itemCatMapper.select(null);
16     //构建一个map,里面存放当前节点下的,所有的子节点数据
17     Map<Long,List<ItemCat>> map = new HashMap<Long,List<ItemCat>>();
18     for(ItemCat cat : cats){
19         //先判断这个key是否存在
20         if(!map.containsKey(cat.getParentId())){
21             //不存在,创建key,并创建List
22             map.put(cat.getParentId(), new ArrayList<ItemCat>());
23         }
24         map.get(cat.getParentId()).add(cat);
25     }
26
27     //一级菜单
28     ItemCatResult result = new ItemCatResult();
29     List<ItemCatData> list1 = new ArrayList<ItemCatData>();
30     //遍历一级菜单
31     String url = "";
32     String name = "";
33
34     for(ItemCat cat1 : map.get(0L)){
35         ItemCatData d1 = new ItemCatData();
36         url = "/products/"+cat1.getId()+".html";
37         d1.setUrl(url);
38         name = "<a href=\""+url+"\">"+cat1.getName()+"</a>";
39         d1.setName(name);
40
41         //遍历二级菜单
42         List<ItemCatData> list2 = new ArrayList<ItemCatData>();
43         for(ItemCat cat2 : map.get(cat1.getId())){
44             ItemCatData d2 = new ItemCatData();
45             url = "/products/"+cat2.getId()+".html";
46             d2.setUrl(url);
47             d2.setName(cat2.getName());
48
49             //遍历三级菜单
50             List<String> list3 = new ArrayList<String>();
51             for(ItemCat cat3 : map.get(cat2.getId())){
52                 url = "/products/"+cat3.getId()+".html";
53                 list3.add(url+"|"+cat3.getName());
54             }
55             d2.setiList(list3);
56             list2.add(d2);
57         }
58         d1.setiList(list2);    //二级菜单
59         list1.add(d1);
60
61         result.setItemCats(list1);
62     }
63
64     return result;
65 }

  2、前台发起跨域请求;

    http://manage.jt.com/web/itemcat/all?callback=category.getDataService

  3.解析json数据;

时间: 2024-11-08 04:29:57

使用jsonp形式跨域访问实现电商平台的左侧导航栏的相关文章

jsonp实现跨域访问

要实现JSONP跨域访问,首先就要了解什么是跨域?然后JSONP与JSON的关系? 1.什么是跨域? 跨域简单的说就是一个域名下的程序和另一个域名下的程序做数据交互.比如说:现有一个http://www.zq.com和http://www.qt.com两个独立的网站,要实现从后一个网站向前一个网站中取数据.把做为数据来源的当作服务端,把去获取数据的当作客户端,实现面向服务的编程. 在动态网页当中,最重要的一项就是取数据.如果是在同一个项目中,将网站挂在同一个域名下,这种情况下无论是前台Ajax还

使用jsonp进行跨域访问

一.使用场景 当我们请求非本服务器的资源的时候,浏览器会禁止访问,并提示不允许跨域访问.此时我们可以使用jsonp这种请求方式,从其他服务器获取资源.在客户端调用提供jsonp支持的接口,获取jsonp格式的数据. 二.客户端的实现 客户端使用jsp,用js发送ajax请求,代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%

深入理解jsonp解决跨域访问

在我们做的这个项目中充分利用jsonp跨域这一个特性,完成了简单的单点登录功能和权限统一认证控制,实现思路并不复杂同各种实现单点登录的产品相比可以说微不足道,各有各的好处.各有各的优点,选择什么方式实现完全取决于我们自己或者项目经理的开发经验,对各种框架的理解程度往往决定了目前开发项目的整体架构. 这不是一项凭空产生的新东西,仅仅是JS的一个特性而已之前没有被我们提及也没有被我们注意到原来经常使用的js还可以跨域呢,觉的我们对已经学过的东西理解还不是不够深入.有些肤浅,JS绝大多数在浏览器中运行

深入了解jsonp解决跨域访问

在这个项目中,我们做的充分利用jsonp这是一个特点跨界,完成简单的单点登录认证和权限控制的统一.道,各有各的优点.各有各的优点,选择什么方式实现全然取决于我们自己或者项目经理的开发经验,对各种框架的理解程度往往决定了眼下开发项目的总体架构. 这不是一项凭空产生的新东西.不过JS的一个特性而已之前没有被我们提及也没有被我们注意到原来常常使用的js还能够跨域呢,觉的我们对已经学过的东西理解还不是不够深入.有些肤浅,JS绝大多数在浏览器中执行完毕各种动态效果,开发js的人一開始应该就考虑到了浏览器的

跨域访问导致导致当前平台用户掉线的问题

1.问题代码 <form action="http://localhost:8020/social/webcast/meetLiving" method="post" target="_blank" style="display: none;" id='{{"sbmt" + $index}}'> <input type="text" value="${jwtT

jsonp跨域访问

JavaScript解决API请求时的跨域处理问题 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JSONP实现跨域访问</title> 6 </head> 7 <body> 8 <div id="mydiv"> 9 <b

实现跨域访问

javascript跨域访问是web开发者经常遇到的问题,什么是跨域,一个域上加载的脚本获取或操作另一个域上的文档属性,下面将列出三种实现javascript跨域方法: 1.基于iframe实现跨域 基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域(例如都是xxx.com,或是xxx.com.cn),使用同一协议(例如都是 http)和同一端口(例如都是80),这样在两个页面中同时添加document.domain,就可以实

JQuery+ajax+jsonp 跨域访问

Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子: 一.客户端 Html代码   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.

用jQuery与JSONP轻松解决跨域访问的问题【转】

原文地址:http://www.jb51.net/article/46463.htm 好在,有jquery帮忙,跨域问题似乎没那么难缠了.这次也借此机会对跨域问题来给刨根问底,结合实际的开发项目,查阅了相关资料,算是解决了跨域问题..有必要记下来备忘. 跨域的安全限制都是指浏览器端来说的.服务器端是不存在跨域安全限制的,所以通过本机服务器端通过类似httpclient方式完成“跨域访问”的工作,然后在浏览器端用AJAX获取本机服务器端“跨域访问”对应的url.来间接完成跨域访问也是可以的.但很显