有关js中的跨域问题
2015-10-28 14:42
441 查看
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",
。。。。。}
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",
。。。。。}
相关文章推荐
- JSP标签<meta>的作用
- 注意:json字符串与json对象的区别
- js的insertRow(-1)和insertCell(-1)
- Javascript进阶篇——(流程控制语句)笔记整理
- extjs经典的增删改查
- javascript中toString和valueOf方法的区别
- js 跳转整理
- JS实现货币格式化、货币繁体汉字化
- extjs经典form的submit()和ajax()
- anjular js 涉及的数据循环
- angular js 传递集合参数
- JS自执行函数的几种写法
- 一个封装了的选项卡效果js
- layPage是一款多功能的js分页组件
- JS获取客户端IP地址、MAC和主机名的7个方法汇总
- js 图片缩显
- 关于动态加载js脚本的话题
- Javascript进阶篇——(数组)笔记整理
- Selenium测试ExtJs
- jsp页面上的一些js校验方法