ajax跨域调用
来源:互联网 发布:g代码编程实例图片 编辑:程序博客网 时间:2024/05/18 00:39
package com.vv.controller;import java.io.IOException;import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONObject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import redis.clients.jedis.Jedis;import com.vv.common.GenRandomCode;import com.vv.common.RedisMgr;@Controllerpublic class getImageCtl {private static final Logger _log = LoggerFactory.getLogger("accpet");private static int TIMEOUTSCENDS =3*60;private static String UserFiex= "IMG_VERFIY";@RequestMapping("/getimage.htm")public void getimage(HttpServletRequest request,HttpServletResponse response)throws Exception {String code = this.showVerifyCode(request,response);String uuid = utfStr(request.getParameter("uuid"));_log.info("getimage get parameter uuid = " + uuid );Jedis jedis = null;try{jedis =RedisMgr.getResource();String key = UserFiex+"_"+uuid;_log.info("getimage key = " + key );jedis.setex(UserFiex+"_"+uuid, TIMEOUTSCENDS,code);} catch (Throwable ce) {RedisMgr.returnBrokenJedis(jedis);} finally {RedisMgr.returnResource(jedis);}}@RequestMapping("/verify.htm")@ResponseBodypublic String verify(HttpServletRequest request,HttpServletResponse response)throws Exception {String uuid = utfStr(request.getParameter("uuid"));String code = utfStr(request.getParameter("code"));String back= "-1";Jedis jedis = null;try{jedis =RedisMgr.getResource();String codeBak = null;String key = UserFiex+"_"+uuid;_log.info("verify key = " + key );codeBak = jedis.get(key); if(key==null||code==null){ back = "-3";//参数错误}else if(codeBak==null){back = "-2";//无效验证码 :uuid没有对应验证码,验证码失效,验证已被验证正确过}else if(key!=null && code != null && codeBak != null && code.equalsIgnoreCase(codeBak)){jedis.del(key);back = "1";//正确}else {back = "-1";//验证错误}} catch (Throwable ce) {RedisMgr.returnBrokenJedis(jedis);} finally {RedisMgr.returnResource(jedis);}return back;}/** * * jsonp访问接口验证图片地址:/verify2.htm参数:uuid:校验key //uuid code:待校验字符串 jsonp:jsonpCallback //必填参数返回:1:正确 -1:错误-2:无效验证码 :uuid对应验证码失效,uuid对应验证已被验证正确过,uuid没有对应验证码-3:参数错误超时时间为3分钟e.g.$.ajax({type:"get",url:"http://verify.im.baidu.com/verify2.htm",data:{"uuid":uuid,"code":v},dataType:"jsonp",jsonp: "jsonpCallback",//必填 且必须是jsonpCallbackjsonpCallback:"trest",//自定义任意async:false,success:function(data){alert(data); // -1 -2 -3 1},error:function(data){alert("error");}}); * * * @param request * @param response * @throws IOException */@RequestMapping("/verify2.htm")public void showVerifyCodeForJsonp( HttpServletRequest request,HttpServletResponse response)throws IOException{response.setContentType("text/plain"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); String jsonpCallback = request.getParameter("jsonpCallback");//客户端请求参数 String uuid = utfStr(request.getParameter("uuid"));String code = utfStr(request.getParameter("code"));String back= "-1";Jedis jedis = null;try{jedis =RedisMgr.getResource();String codeBak = null;String key = UserFiex+"_"+uuid;_log.info("verify key = " + key );codeBak = jedis.get(key); if(key==null||code==null){ back = "-3";//参数错误}else if(codeBak==null){back = "-2";//无效验证码 :uuid没有对应验证码,验证码失效,验证已被验证正确过}else if(key!=null && code != null && codeBak != null && code.equalsIgnoreCase(codeBak)){jedis.del(key);back = "1";//正确}else {back = "-1";//验证错误}} catch (Throwable ce) {RedisMgr.returnBrokenJedis(jedis);} finally {RedisMgr.returnResource(jedis);} PrintWriter out = response.getWriter(); back = jsonpCallback+"("+back+")";out.write(back);}private String showVerifyCode( HttpServletRequest request,HttpServletResponse response) throws IOException{GenRandomCode verifyCode = new GenRandomCode();verifyCode.createCode();String code = verifyCode.getCode();_log.info(" verify code = " + code );response.setContentType("image/png");verifyCode.write(response.getOutputStream());return code;}public String utfStr(String str) {if(str!=null){ try { URLEncoder.encode(str, "utf-8"); return str; } catch (UnsupportedEncodingException e) { e.printStackTrace(); }} return null; }}
0 0
- ajax跨域调用
- 【- Ajax -】如何理解Ajax跨域调用
- ajax,php,jsp,ajax跨域调用
- ajax跨域调用webservice
- ajax jsonp跨域调用
- jQuery ajax 跨域调用
- jquery Ajax跨域调用
- Ajax 跨域调用 webservice
- jquery ajax 跨域调用
- Jquery Ajax GetJson实现跨域调用
- jquery Ajax 跨域调用(jsonp)
- jsonp 方式的 ajax跨域调用
- 总结Ajax跨域调用问题
- AJAX跨域调用WebService解决方案
- jquery Ajax 跨域调用(jsonp)
- Jquery AJAX 跨域调用webservices
- ajax跨域调用webservice方法实例
- 总结Ajax跨域调用问题
- [BZOJ1202][HNOI2005][差分约束]狡猾的商人[水题]
- 在linux的shell中/bin/true是什么意思?
- COL命令详解
- Java包命名规则引发的思考
- ubuntu 配置 pptpd关键项目
- ajax跨域调用
- 数组 4Sum
- Sqrt(x) -- leetcode
- linux常见服务端口
- 报文交换数据小练习
- 神秘顾客观质量控制要点
- 注解框架---AndroidAnnotations
- Android FragmentManage FragmentTransaction介绍
- SharePoint 2010自定义母版页小技巧——JavaScript和CSS引用