您的位置:首页 > Web前端 > JavaScript

有关js中的跨域问题

2015-10-28 14:42 399 查看
http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html
http://www.cnblogs.com/oneword/archive/2012/12/03/2799443.html http://my.oschina.net/lwaif/blog/481154?p={{totalPage}}
可参考印象笔记知识

账号1076547169@qq.com

我所知道的一种策略。

现状:我这里有一个页面,需要调用另一个系统(比如订单系统的一个接口。===对方会提供),怎样实现跨域 访问?

1.在我这里写java后台控制层代码,

@RequestMapping(value = "isRepeatCompalin", method = { RequestMethod.POST, RequestMethod.GET })
public String isRepeatCompalin(HttpServletRequest request, HttpServletResponse response, Model model) {
ResponseVO<String> responseVO = new ResponseVO<String>();
try {
ComplainRequestVO vo = new ComplainRequestVO();
String listId=request.getParameter("listId");
vo.setOrderId(listId);
Map<String, Object> map = ComplainFactory.validateComplain(vo);
if (map != null && map.get("result").toString().equals("true")) {
throw new AppException("MEM_COMPLAIN_ISCOMPLAINED");
}
responseVO.setResult(true);
} catch (Exception ex) {
AppException exception = ExceptionHandle.exceptionHandle(ex);
responseVO.setCode(exception.getCode());
responseVO.setRemark(exception.getMessage());
responseVO.setResult(false);
}
model.addAttribute(responseVO);
return "success";
}

2.封装并调用对方的接口

@SuppressWarnings("unchecked")
public static Map<String, Object> validateComplain(ComplainRequestVO vo) throws Exception {
if (null == vo || YDStringUtils.isBlank(vo.getOrderId())) {
return null;
}
String data = "listId="+vo.getOrderId();
String result = "";
try {
result = HttpClient.post(complainSearch, data, HttpClient.CONTENT_TYPE_FORM);
return JsonMapper.json2GenericObject(result, Map.class);
} catch (Exception e) {
e.printStackTrace();
log.error("可能是json数据异常: " + result);
e.printStackTrace();
return null;
}

}

3.在数据库里配置complainSearch,即对方的接口地址

4.最后在自己的页面利用ajax调用自己写的接口,即可实现跨域调用了

function checkMailNo(obj) {
var value=$('#mailNo').val();
var mailNo= value;
//调用接口
$.ydajax({
url: $.ydmb.RepeatCompalin,
type: 'POST', //post请求
data:{
listId:mailNo
},
callback: function(data) {
if (!data.result) {
$('#mailNo').showPrompt(data.remark,'error');//待修改
$(obj).val("");
$(obj).focus();
}
return ;
}
});
}

5.在global.js中配置

$.ydmb = {
RepeatCompalin:"basic/complain/isRepeatCompalin.json",

。。。。。}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: