JSONP跨域代码

只有代码:

下面是页面端代码:

<!-- 两个不同的项目A和B,下面的例子是项目请求A的页面---请求---项目B的数据 -->

<!-- 默认回掉函数callback ,默认情况下它的值会在发出请求时自动生成 -->

项目A页面js请求:

		 $.ajax({ 
			type : 'GET',	              
			contentType:'application/jsonp',  
	        url:"http://localhost:8080/sms-server/activity/getDetActLiInf?accessKeyId=1&accessKeySecret=2&page=3&activityId=4",         
	        dataType:'jsonp',  
	        data:'',  
	        async: false,
	        jsonp:'callback',  
	        success:function(result) {  
	           alert(JSON.stringify(result));
	        },  
	        error:function(){  
	            alert('fail');  
	        }  
	    }); 
       });  
      
        <!--  JSONP只支持get请求       -->  
        <!--请求路径 url中                        
	                                    接口:http://localhost:8080/sms-server/activity/getDetActLiInf
	                                    参数 :     ?accessKeyId=1&accessKeySecret=2&page=3&activityId=4"  -->
	    <!-- callback是回调函数,请求成功执行success,失败执行error   --> 
	                                 
下面是java代码:
项目B接口:
	
	/**
	 * 获得活动列表接口
	 * @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) ;  
	}
	
	<!-- 注意@ResponseBody  @RequestMapping   callback(默认)  和返回格式JSONPObject -->


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值