博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨域前后端代码
阅读量:7105 次
发布时间:2019-06-28

本文共 2437 字,大约阅读时间需要 8 分钟。

后端代码

package com.sptiomap.llepds.workflow.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;public class HanCoRs implements HandlerInterceptor{	@Override	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)			throws Exception {		 response.setHeader("Access-Control-Allow-Origin", "*");	        response.setHeader("Access-Control-Allow-Methods", "*");	        response.setHeader("Access-Control-Max-Age", "3600");	        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");	        response.setHeader("Access-Control-Allow-Credentials","true"); //是否允许浏览器携带用户身份信息(cookie)	        return true;	}	@Override	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,			ModelAndView modelAndView) throws Exception {		// TODO Auto-generated method stub			}	@Override	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)			throws Exception {		// TODO Auto-generated method stub			}复制代码

后端代码return "message("+json+")";

前端代码

方法一

    
test 复制代码

type:请求类型,GET 或 POST,默认为 GET;

async:true(异步)或 false(同步),默认情况下为true,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行;
url:发送请求的地址(跨域请求时应为绝对地址);
dataType:指定服务器返回的数据类型;
jsonpCallback:自定义JSONP回调函数名称;
success:请求成功后回调函数;
error:请求失败时调用此方法。

服务器返回的数据类型:

返回一个指定函数名为message的回调函数,函数里面包裹的数据为JSON格式。

方法二

$.ajax({        url: 'http://localhost:8080/llepds//llepdsWorkFlow/getCurrentWorkList.do?userName=dfs1',        type: 'GET',        dataType: 'jsonp',  // 请求方式为jsonp        jsonpCallback: "message",    // 自定义回调函数名        data: {},        success: function(result){          console.log(result)        },        error:function(err){           console.log(err);        }      });      function message(res) {        console.log(JSON.stringify(res));      }复制代码

方法三

var script = document.createElement('script');
script.type = 'text/javascript';
// 传参并指定回调执行函数为onBack
script.src = 'http://localhost:8080/llepds//llepdsWorkFlow/getCurrentWorkList.do?userName=dfs1&callback=message';
document.head.appendChild(script);
// 回调执行函数
function message(res) {
console.log(JSON.stringify(res));
}

jsonp缺点:只能实现get一种请求。

转载于:https://juejin.im/post/5cb48e47f265da034d2a08de

你可能感兴趣的文章
PD设计中表名过长,自动生成的主外键名截取的问题
查看>>
controlfile作为RMAN的repository时,对 keep time 的测试
查看>>
StackOverflow发布年度开发者调查报告:JavaScript备受欢迎
查看>>
C#解析HTML DOM解析类 HtmlParser.Net 下载
查看>>
语义化HTML:ul、ol和dl
查看>>
Lua的数学函数
查看>>
解密jQuery事件核心 - 委托设计(二)
查看>>
自平衡二叉查找树
查看>>
.bash_profile和.bashrc的区别(如何设置生效)
查看>>
thinkphp线上自动加载异常与修复
查看>>
关于异步Promises
查看>>
用友在清华的笔试题
查看>>
java多态和强制类型转换
查看>>
程序DEBUG:查找类所在的JAR包
查看>>
15.2. Create Your Project
查看>>
【SQL Server】数据库是单个用户的 无法顺利进行操作 怎么解决
查看>>
微信登陆代码
查看>>
不使用数据绑定,分层显得更加清晰
查看>>
shell脚本中的数据传递方式
查看>>
Shiro系列(0) - 权限管理在J2EE企业级开发中的应用与实战
查看>>