美文网首页
javaweb 中的跨域请求

javaweb 中的跨域请求

作者: 咻咻咻i | 来源:发表于2017-10-02 14:31 被阅读0次

    方法一 、使用ajax进行跨域请求 方法json数据

    • 配置拦截器
      用于允许指定的请求跨域
    ...
        public void doFilter(ServletRequest request, ServletResponse res, FilterChain chain) throws IOException, ServletException {
            String url = ((HttpServletRequest) request).getRequestURI();
            HttpServletResponse response = (HttpServletResponse) res;
            if (url != null && url.indexOf("/json/") != -1) { // 对含有json的请求支持跨域
                response.setHeader("Access-Control-Allow-Origin", "*");
                response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
                response.setHeader("Access-Control-Allow-Methods", "POST, GET"); 
            }
        }
    ...
    

    为含有/json/的url设置允许跨域

    • 编写控制器
      返回json数据
    • 跨域访问实例
      通过ajax跨域访问

    方法二、使用jsonp实现跨域请求

    只能用get请求。

    • 编写控制器
      返回jsonp类型数据,与json不同的是需要这样callback(jsondata)
    • 测试
      依旧使用jquery
        $('body').on('click', 'div#o', function(e) {
            var s = this;
            s.innerHTML = "nihao"
            $.ajax({
                url:"http://localhost:8080/XrtFirm/jsonp/ss",
                dataType: 'jsonp',
                data: {auth: 'yanzheng'},
                success: function(data) {
                    s.innerHTML = JSON.stringify(data)
                },
                error: function (xhr, type) {
                    s.innerHTML = type
                }
            });
        })
    

    相关文章

      网友评论

          本文标题:javaweb 中的跨域请求

          本文链接:https://www.haomeiwen.com/subject/jnrzextx.html