Jsonp跨域

前端之家收集整理的这篇文章主要介绍了Jsonp跨域前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Jsonp的代码应用:

$.ajax({
            	url : "http://sso.taotao.com/user/check/ 

"+escape(pin)+"/1?r=" + Math.random(),dataType : "jsonp",success : function(data) {
                    checkpin = data?"1":"0";
                    if (data) {
                        validateSettings.succeed.run(option);
                        namestate = true;
                    }else {
                        validateSettings.error.run(option,"该用户名已占用!");
                        namestate = false;
                    }
                }
            });
	// 请求方法 GET
	// URL http://sso.taotao.com/user/check/{param}/{type 

}
/**
	 * 检查数据是否可用
	 * 
	 * @param param
	 * @param type
	 * @return
	 */
	@RequestMapping(value = "check/{param}/{type}",method = RequestMethod.GET)
	public ResponseEntity<String> check(HttpServletRequest request,@PathVariable String param,@PathVariable Integer type) {
		try {
			Boolean bool = this.userService.check(param,type);

			// 获取callback方法名
			String callback = request.getParameter("callback");

			// 判断callback是否为空
			String result = "";
			if (StringUtils.isNotBlank(callback)) {
				// 如果不为空表示使用jsonp调用
				// 使用方法名包裹原来的数据,位置成js数据
				result = callback + "(" + bool + ")";
			} else {
				// 如果为空表示直接调用,没有用到jsonp
				result = "" + bool;
			}

			// 查询数据,返回200
			return ResponseEntity.ok(result);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 服务器错误,返回500
		return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);

	}

jsonp请求形式默认给加上callback函数,经过后台处理,将callback函数返回并赋予参数值。。前台callback或success函数接收即可。


具体讲解可参考:http://www.cnblogs.com/chiangchou/p/jsonp.html

猜你在找的Json相关文章