Jsonp解决跨域调用问题实战
2015-09-30 00:00
561 查看
摘要: Jsonp解决跨域调用问题实战,js调用解决跨域问题
核心:前端通过jsonp跨域调用后端接口,接口返回的json必须支持callback回调函数
代码如下:
1、前端jquery
2、后端controller
核心:前端通过jsonp跨域调用后端接口,接口返回的json必须支持callback回调函数
代码如下:
1、前端jquery
var searchUrl ="${some_url}/tieba/queryTiebaThread4Admin.action"; $.ajax(searchUrl, { data: {'tiebaId': tiebaId,'threadId': threadId}, dataType: 'jsonp', type : "get", jsonpCallback:"callback", jsonp: "callback", cache : false, crossDomain: true, success: function(result) { if(result && result.resultCode == 0){ $("#first_post_id").val(result.data.firstPost); $("#title").val(result.data.title); showTips('数据搜索有结果',"success"); }else{ $("#first_post_id").val(''); $("#title").val(''); showTips('未抓取主题帖数据,请检查主题和帖吧ID是否正确',"error"); } }, error:function(e){ $("#first_post_id").val(''); $("#title").val(''); showTips('未抓取主题帖数据,请稍后重试',"error"); } });
2、后端controller
public Render queryTiebaThread4Admin(@Read(key = "tiebaId") Long tiebaId, @Read(key = "threadId") Long threadId, @Read(key = "callback") String callback) { TiebaResult<Map<String,Object>> result = new TiebaResult<Map<String,Object>>(); Map<String,Object> dataMap = new HashMap<String, Object>(); try { AnchorTieba tiebaInfo = tiebaQueryManager.getTieba(tiebaId); AnchorTiebaThread tiebaThread = threadQueryManager.queryThread(tiebaId, threadId); if(tiebaInfo != null && tiebaThread != null){ dataMap.put("tiebaId",tiebaId); dataMap.put("threadId",threadId); dataMap.put("tiebaName",tiebaInfo.getName()); dataMap.put("firstPost",tiebaThread.getFirstPost()); dataMap.put("title",tiebaThread.getTitle()); result.setData(dataMap); }else{ result.setResultCode(ErrorCode.NOT_FOUND); } } catch (Exception e) { result.setResultCode(ErrorCode.NOT_FOUND); logger.info("queryTiebaThread4Admin:", e); } StringBuilder resultBuilder = new StringBuilder(JSONObject.fromObject(result).toString()); if(StringUtils.isNotBlank(callback)){ resultBuilder.insert(0, '(').insert(0,callback).append(')'); } return new Render(RenderType.TEXT, resultBuilder.toString()); }
相关文章推荐
- JavaScript框架设计-异步处理
- Ember.js 入门指南——查询参数
- js scroll nav
- 7、第七节课,js逻辑运算
- JS
- JavaScript 语法
- JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)
- 【js】day02_语法规范_标识符_数据类型_运算符_控制语句
- 省市二级联动
- 常用的Javascript表单正则验证函数
- Unobtrusive Javascript
- 如何正确学习JavaScript
- js鼠标跟随移动显示表格上某一行的信息(包括表格外的信息)
- 第一章JSP基础语法
- JavaScript中简单的数组使用及明细处理
- JavaScript高级程序设计之函数表达式之闭包第7.2讲笔记
- [JavaScript权威指南 [笔记]
- 用js将二维数组转为json格式字符串
- Chrome 控制台console的用法(学了之后对于调试js可是大大有用)
- 【js】day01_JS概述_Js特点_使用JS_调试