美文网首页
跨域请求-JSONP

跨域请求-JSONP

作者: 毛不翼 | 来源:发表于2019-10-12 11:13 被阅读0次

    前端

    (function ($) {
        $.loginCheck = function (pram1, pram2, success, error) {
            let URL_DOMAIN = "//xxx.fireface.cn/xxx/xx/xx?";
            let url = URL_DOMAIN + "pram1=" + pram1+ "&pram2=" + pram2;
            call(url,success,error)
    
        };
        $.getAuth = function (success, error) {
            let AUTH_URL = "//xxx.fireface.cn/xxx/xx/xx?";
            call(AUTH_URL,success, error);
        };
        let call = function (url, success, error) {
            url += url.indexOf("?") > 1 ? "&callback=callback" : "?callback=callback";
            let brake = false;
            let head = document.getElementsByTagName('head')[0];
            let script = document.createElement('script');
            head.appendChild(script);
    
            window.callback = function (data) {
                if (brake) {
                    return false;
                }
                brake = true;
                head.removeChild(script);
                clearTimeout(script.timer);
                success && success(data);
            };
    
            script.src = url;
            script.timer = setTimeout(function () {
                if (brake) {
                    return false;
                }
                brake = true;
                head.removeChild(script);
                error && error({
                    message: '超时'
                });
            }, 10000);
        };
    })(LoginCaller = {});
    
    function successCallback(responseText){
        //兼容转换为对象,浏览器差异,可是是json串或者是object类型
        var data= typeof responseText == 'string' ? JSON.parse(responseText) : responseText;
        console.log(data.success);
        console.log(data.code);
    }
    function errorCallback(responseText){
        //兼容转换为对象,浏览器差异,可是是json串或者是object类型
        var data = typeof responseText == 'string' ? JSON.parse(responseText) : responseText;
        console.log(data.message);
        console.log(data.code);
    }
     
    LoginCaller.getAuth(successCallback,errorCallback);
    

    后端

     public String XXX() {
            try {
                String pram1= request.getParameter("pram1");
                String pram2= request.getParameter("pram2");
                String callback = request.getParameter("callback");
    
                Map<String, Object> resultMap = new HashMap<>();
                if (pram1 != null) {
                    if (pram1.equalsIgnoreCase(pram1)) {
                        setCookie(response, "pram1", pram1);
                        resultMap.put(SUCCESS, "true");
                    } else {
                        resultMap.put(SUCCESS, "false");
                    }
    
                }
                PrintWriter writer = response.getWriter();
                writer.append(callback).append("(").append(JSON.toJSONString(resultMap)).append(")");
                writer.flush();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    

    相关文章

      网友评论

          本文标题:跨域请求-JSONP

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