浏览器跨域问题 jsonp
编程技术  /  houtizong 发布于 3年前   115
惯例:
我是温浩然:
诚实一点,学得别人的,就是转载的。
网址:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html
只有浏览器有跨域的问题,所以说,这篇文章是为了解决浏览器的跨域问题。
跨域传输数据用jsonp格式。至于想知道什么是jsonp,看上面的网址去。大神写的。
根据文章的介绍,我这种属于jquery实现jsonp。
浏览器中代码如下:
var map={name:$('#editCardModal .name').val(),description:$('#editCardModal .description').val(),expire:$('#editCardModal .expire').val()}$.ajax({ type : 'GET', contentType:'application/jsonp', url:"http://xxxxxxxx/editCard", dataType:'jsonp', data:map, async: false, jsonp:'callback', success:function(result) { window.location.reload(); }, error:function(){ alert('系统出错,请与管理员联系'); } });
在服务器中是怎样解析的呢?
代码如下:
/** * 获得活动列表接口 * @param request 请求路径格式 * ...sms-server/activity/getActLiInf?callback=?&accessKeyId=?&accessKeySecret=?&page=?&size=?&status=? * @param callback JSONP回掉函数 * @param accessKeyId,密钥Id * @param accessKeySecret,密钥密码 * @param page,当前页数,默认为1 * @param size,每页条数,默认为20 * @param status,活动状态,0--未开始,1--进行中,2--已结束 默认为全部 * */@ResponseBody@RequestMapping(value="/getActLiInf",method=RequestMethod.GET)public JSONPObject getActListInterface(HttpServletRequest request,@RequestParam String callback,@RequestParam String accessKeyId,@RequestParam String accessKeySecret,@RequestParam int status,@RequestParam int page,@RequestParam int size) { ResultCode resultCode=ResultCode.SUCCEED;Map<String,Object> mapResponse = new HashMap<String,Object>();Object result = null;try {ParamChecker.notEmpty("accessKeyId", accessKeyId);ParamChecker.notEmpty("accessKeySecret", accessKeySecret);Company company=companyService.getCompanyByAccessKeyId(accessKeyId);if(!company.getAccessKeySecret().equals(accessKeySecret)){resultCode = ResultCode.INTERNAL_ERROR;result+="鉴权失败";throw new UnAuthedException("鉴权失败");}List<String> enIPList = ipBlackListService.getEnIPList();String ip = request.getRemoteAddr();if(!enIPList.contains(ip)){resultCode = ResultCode.INTERNAL_ERROR; result+="ip拒绝访问";throw new UnAuthedException("拒绝访问");}if(String.valueOf(page)==null||page<=0){page=1;}if(String.valueOf(size)!=null&&size<=0){size=20;}if(String.valueOf(status)!=null&&status<=-1&&status>2){status=-1;}PageInfo<PageActivity> pageInfo =pageActService.getPageActListByCondition(company.getId(),status,page,size); List<Company> companys=companyService.getCompany();Map<String,Object> mapAct = new HashMap<String,Object>();mapAct.put("pageInfo", pageInfo);mapAct.put("companys", companys);result=mapAct;} catch (VerifyException e) {resultCode = ResultCode.INTERNAL_ERROR;result = e.getMessage();}mapResponse.put("resultCode", resultCode);mapResponse.put("result", result);return new JSONPObject(callback,mapResponse) ; }
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接