简单的实现jsonp跨域请求

标签:jsonp


后续再进行详细补充

java后台代码

/**
 * pingan_sap jsonp调用,初始化上线后的  服务违禁用语
 * @param response
 * @param workgroupid
 * @param subccno
 * @param vdn
 * @param callback
 */
@RequestMapping(value = "/keywordServiceDisableGrid",method = {RequestMethod.GET })
@ResponseBody
public void keywordServiceDisableGrid(HttpServletResponse response, String workgroupid, String subccno, String vdn, String callback) {

    JSONObject retJsonObject=new JSONObject();
    try{
        boolean flag = ctiService.getServiceDisableDataGrid(workgroupid, subccno, vdn);
        if (flag) {
            retJsonObject.put("resultcode", "0");
            retJsonObject.put("resultmsg", "success");
        }else{
            retJsonObject.put("resultcode", "1");
            retJsonObject.put("resultmsg", "failure");
        }
        log.error("更新违禁用语,调用结果  =  " + flag);
        }catch(Exception e){
        retJsonObject.put("resultcode", "1");
        retJsonObject.put("resultmsg", "failure");
        log.error(e.getMessage());
    }
    // 接收参数callback名称需要与js中配置的jsonp标签名一致
    String result = callback+"("+retJsonObject.toString()+");";//拼接可执行的js

    //返回客户端内容
    PrintWriter pw= null;
    try {
        pw = response.getWriter();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println(result);
    pw.print(result);
}

js前端代码

<!-- 上线导入的服务禁用语,跨域请求cti -->
function onlineKeyword(){
    $.ajax({
        type : 'GET',
        dataType : 'jsonp', // 数据类型配置成jsonp
        jsonp : "callback", //配置jsonp随机码标签,在服务器代码部分需要用到他来拼接一个json的js对象
        url : 'http://127.0.0.1:8081/pingan_cti/interfaces/keywordServiceDisableGrid', //服务路径
        async : false,
        data: {
            "workgroupid":'-1',
            "subccno":'1',
            "vdn":'1',
        },
        success : function (response) {
            if(response.resultcode == 0){
                Modal_Alert('服务禁用语管理','上线成功');
            }else{
                Modal_Alert('服务禁用语管理','上线失败');
            }
        },
        error: function (XMLHttpReuqest, textStautus, errothrown) {
            console.log(XMLHttpRequest.status);
            console.log(XMLHttpReuqest.readyState);
            console.log(XMLHttpRequest.responseText);
            console.log(textStautus);
            console.log(errothrown);
            Modal_Alert('服务禁用语管理','上线失败');
        }
    });
}

jsp

<button type="button" class="btn btn-info btn-sm" onclick="onlineKeyword()"><span class="ace-icon fa glyphicon-plus icon-on-right bigger-110"></span>上线</button>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,432评论 25 708
  • 慧根不除不能安民心 “大侠饶命啊,你不能杀我”智智对着李诺大喊,“我陪了你十几年啊,没有功劳也有苦劳啊!我见...
    转发锦鲤求好运阅读 251评论 0 0
  • 昨天就想写这篇文章,是因为朋友圈那时花开发的一条消息:“下午五点多进手术室,晚上九点出手术室,却在晚上十点一刻没事...
    心若芷兰阅读 702评论 2 1
  • 01 玫瑰小姐是我的大学同学,明眸皓齿,积极上进,算不上特别漂亮,但浑身散发着灵气。 她一直觉得,通过自身努力得来...
    花音in阅读 1,797评论 2 5