ajax跨域问题的解决办法
来源:互联网 发布:s7200ppi编程电缆驱动 编辑:程序博客网 时间:2024/06/06 17:03
$.ajax({
url: "http://localhost:8080/wechart/qryOrderInfoListByWeChart",
type: "post",
dataType: 'json',
data: data,
error: function (XMLHttpReuqest, textStautus, errothrown) {
console.log(XMLHttpRequest.status);
},
success: function (json) {
alert(json);
}
});
url: "http://localhost:8080/wechart/qryOrderInfoListByWeChart",
type: "post",
dataType: 'json',
data: data,
error: function (XMLHttpReuqest, textStautus, errothrown) {
console.log(XMLHttpRequest.status);
},
success: function (json) {
alert(json);
}
});
浏览器调试一直报 XMLHttpRequest cannot load http://www.server.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://www.client.com' is therefore not allowed access.
搜了下说是跨域的问题,网上找解决方法,加crossDomain:true, type改成get啦、甚至监控浏览器类型和版本去修改ajax方法,试了十几种方法,都不行!最后问了一个大牛同事,解决方法记录一下,供码农们参考:
修改ajax请求为jsonp
$.ajax({
url: "http://localhost:8080/wechart/qryOrderInfoListByWeChart?openId=1123&pageSize=5&pageNum=1",
type: "POST",
dataType: "JSONP",
jsonp: "jsonpcallback",
jsonpCallback: "qryCallback",
success:function(msg){
//alert(msg.resultMsg);
},
error: function (msg) {
alert("查询安装工单失败!");
}
});
url: "http://localhost:8080/wechart/qryOrderInfoListByWeChart?openId=1123&pageSize=5&pageNum=1",
type: "POST",
dataType: "JSONP",
jsonp: "jsonpcallback",
jsonpCallback: "qryCallback",
success:function(msg){
//alert(msg.resultMsg);
},
error: function (msg) {
alert("查询安装工单失败!");
}
});
function qryCallback(result) {
console.log(result);
console.log(result);
}
后台代码回调定义的callback方法:
@ResponseBody
@RequestMapping(value="/qryOrderInfoListByWeChart")
public void qryOrderInfoListByWeChart(HttpServletRequest request, HttpServletResponse response) throws Exception{
Map<String,Object> resultMap = new HashMap<String,Object>();
List<WorkOrderInstall> pageList = new ArrayList<WorkOrderInstall>();
Map<String,Object> param = new HashMap<String,Object>();
int pageSize=Integer.parseInt(request.getParameter("pageSize"));
int pageNum=Integer.parseInt(request.getParameter("pageNum"));
param.put("openId", request.getParameter("openId"));
param.put("pageNum", pageNum);
param.put("pageSize", pageSize);
param.put("pageStart", (pageNum-1)*pageSize);
pageList = workOrderService.qryOrderInfoByOpenId(param);
resultMap.put("resultType", "N");
resultMap.put("resultMsg", "success");
resultMap.put("pageList", pageList);
JSONObject jsonObject = JSONObject.fromObject(resultMap);
String jsonp=request.getParameter("jsonpcallback");
PrintWriter pw = response.getWriter();
pw.print(jsonp+"("+jsonObject.toString()+")");
pw.flush();
pw.close();
}
@RequestMapping(value="/qryOrderInfoListByWeChart")
public void qryOrderInfoListByWeChart(HttpServletRequest request, HttpServletResponse response) throws Exception{
Map<String,Object> resultMap = new HashMap<String,Object>();
List<WorkOrderInstall> pageList = new ArrayList<WorkOrderInstall>();
Map<String,Object> param = new HashMap<String,Object>();
int pageSize=Integer.parseInt(request.getParameter("pageSize"));
int pageNum=Integer.parseInt(request.getParameter("pageNum"));
param.put("openId", request.getParameter("openId"));
param.put("pageNum", pageNum);
param.put("pageSize", pageSize);
param.put("pageStart", (pageNum-1)*pageSize);
pageList = workOrderService.qryOrderInfoByOpenId(param);
resultMap.put("resultType", "N");
resultMap.put("resultMsg", "success");
resultMap.put("pageList", pageList);
JSONObject jsonObject = JSONObject.fromObject(resultMap);
String jsonp=request.getParameter("jsonpcallback");
PrintWriter pw = response.getWriter();
pw.print(jsonp+"("+jsonObject.toString()+")");
pw.flush();
pw.close();
}
或者这样
@ResponseBody
@RequestMapping(value="/qryOrderInfoListByWeChart")
public String qryOrderInfoListByWeChart(String openId,int pageSize,int pageNum) throws Exception{
Map<String,Object> resultMap = new HashMap<String,Object>();
List<WorkOrderInstall> pageList = new ArrayList<WorkOrderInstall>();
Map<String,Object> param = new HashMap<String,Object>();
param.put("openId", openId);
param.put("pageNum", pageNum);
param.put("pageSize", pageSize);
param.put("pageStart", (pageNum-1)*pageSize);
pageList = workOrderService.qryOrderInfoByOpenId(param);
resultMap.put("resultType", "N");
resultMap.put("resultMsg", "success");
resultMap.put("pageList", pageList);
JSONObject jsonObject = JSONObject.fromObject(resultMap);
return "qryCallback("+jsonObject.toString()+")";
}
@RequestMapping(value="/qryOrderInfoListByWeChart")
public String qryOrderInfoListByWeChart(String openId,int pageSize,int pageNum) throws Exception{
Map<String,Object> resultMap = new HashMap<String,Object>();
List<WorkOrderInstall> pageList = new ArrayList<WorkOrderInstall>();
Map<String,Object> param = new HashMap<String,Object>();
param.put("openId", openId);
param.put("pageNum", pageNum);
param.put("pageSize", pageSize);
param.put("pageStart", (pageNum-1)*pageSize);
pageList = workOrderService.qryOrderInfoByOpenId(param);
resultMap.put("resultType", "N");
resultMap.put("resultMsg", "success");
resultMap.put("pageList", pageList);
JSONObject jsonObject = JSONObject.fromObject(resultMap);
return "qryCallback("+jsonObject.toString()+")";
}
阅读全文
0 0
- ajax 浏览器跨域问题的解决办法
- ajax跨域问题的解决办法
- ExtJs Ajax 跨域问题的解决办法(Jsonp)
- ExtJs Ajax 跨域问题的解决办法(Jsonp)
- 关于Ajax跨域访问问题的一种解决办法
- 关于PHP Ajax跨域问题的解决办法
- ajax跨域的解决办法
- ajax跨域的解决办法
- ajax跨域问题分析及解决办法
- AJAX缓存问题的解决办法
- ajax缓存问题的解决办法
- Ajax缓存问题的解决办法
- Ajax跨域解决办法
- ajax跨域解决办法
- ajax 跨域解决办法。
- 有关AJAX跨域的解决办法-JSONP
- 有关AJAX跨域的解决办法-JSONP
- ajax跨域请求的解决办法
- BZOJ 2435 道路修建
- 使用Gradle构建SpringBoot工程系列:第二篇:开发环境准备
- 矩阵乘法
- SSH:Hibernate框架(七种关联关系映射及配置详解)
- mysql死锁-非主键索引更新引起的死锁
- ajax跨域问题的解决办法
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- mysql常用SQL语句
- 项目名后有[]的情况解决
- mat初始化出现乱码
- OKhttp
- 大型互联网b2b b2c o2o电子商务云平台
- 避免多次点击PerfectClickListener
- python使用ip代理池,测试ip是否有用