有关js中的跨域问题
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",
。。。。。}