跨域之一:同源计谋和跨域

Jsonp跨域调用,jsonp跨域

    @Autowired
    private UserService userService;

    // 请求方法 GET
    // URL http://sso.taotao.com/user/check/{param}/{type}
    /**
     * 检查数据是否可用
     * 
     * @param param
     * @param type
     * @return
     */
    @RequestMapping(value = "check/{param}/{type}", method = RequestMethod.GET)
    // @ResponseBody
    public ResponseEntity<String> check(HttpServletRequest request, @PathVariable String param,
            @PathVariable Integer type) {
        try {
            Boolean bool = this.userService.check(param, type);
            // 1.获取callback参数
            String callback = request.getParameter("callback");

            // 2.判断callback是否为非空
            String result = "";
            if (StringUtils.isNotBlank(callback)) {
                // 如果为非空,则进行伪装
                // 3.对返回结果进行包裹,伪装成js数据fun(true)
                result = callback + "(" + bool + ")";
            } else {
                // 如果为空,不伪装,直接返回
                result = "" + bool;
            }

            // 这就是一个查询,返回200
            return ResponseEntity.ok(result);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 如果服务器错误,返回500
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
    }

 

把泛型由Boolean改为String。

 

@Autowired private
UserService userService; // 诉求方法 GET // U昂CoraL
{param}/{type} /** *
检查数据是还是不是可用…

JSONP:
透过动态创建script标签,然后经过标签的src属性获取js文件中的js脚本,该脚本的剧情是贰个函数调用,参数正是服务器再次来到的数目,为了管理那几个重临的数码,须要事先在页面定义好回调函数
,不过要注意JSONP只帮衬GET央浼,不援救POST要求。

4. postMessage

 

http://www.123.com/index.html
调用
http://www.123.com/server.php
(非跨域)

1. JSONP

调用
(协议差异:http/https,跨域)

http://www.123.com:8080/index.html
调用
http://www.123.com:8081/server.php
(端口区别:8080/8081,跨域)

三、跨域达成格局?

运用方法就不赘述了,可是要留神JSONP只匡助GET恳求,不援助POST乞求。

所谓同源是指,域名,协议,端口均一致,多少个大约的事例:

1)同源攻略

同源策略(Same origin policy)是由 NetScape 公司在1995年提出的一种安全策略;
同源策略只是一个约定,提出后被各个浏览器厂商采纳,并以各自的方式实现了同源策略。
  • ##### 何为同源计策?

  • 同源攻略:是浏览器最核心也最主旨的平安功能,会约束浏览器的一举一动;

  • 同源战略会限制浏览器:只允许本域内的本子读写本域内的能源,不允许访问本域外的财富。
  • ##### 为什么必要同源攻略?

  • 为保证用户新闻的安全,幸免恶意网址窃取用户数量,浏览器需求贯彻严苛界定

  • 举例:作者刚登录了某宝网,此时再去登陆 B 网址,B 网址就足以选择 JS
    获取到自个儿的某宝账户消息,然后它做什么都足以了。

  • ##### 如何判定是或不是同源?

  • 认清要素有三:协议、域名、端口号;

  • 三者全体千篇一律才视为同源,即属于同多个域;不然就是非同源。

  • ##### 限制范围

在非同源景况下,存在如下受限制行驶为:

  1. 力不能及分享 cookie, localStorage, indexDB
  2. 力不从心操作相互的 dom 成分
  3. 没辙发送 ajax 诉求

调用
) (非跨域)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图