Jfinal跨域问题

2018-02-27 11:52:08来源:oschina作者:Mr影响Li人点击

分享

赶紧百度一下,找到了两种解决方法,现在将这两种方法整合在一起。


1、是在pom.xml和web.xml中配置CORS进行解决。在这里直接把别人的链接copy过来了(该项目是基于maven项目):http://www.jfinal.com/share/260


需要注意一点是web.xml的配置必须要在jfinal的配置之前,pom.xml按照上面的链接直接加进去就可以了,下面我把web.xml的代码贴出来一下。


<?xml version="1.0" encoding="UTF-8"?>xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee">

CORS
com.thetransactioncompany.cors.CORSFilter

cors.allowOrigin
*


cors.supportedMethods
GET, POST, HEAD, PUT, DELETE


cors.supportedHeaders
Accept, Origin, X-Requested-With, Content-Type, Last-Modified


cors.exposedHeaders
Set-Cookie


cors.supportsCredentials
true



CORS
/*



jfinal
com.jfinal.core.JFinalFilter

configClass
com.ssc.MainConfig



jfinal
/*

2、直接增加一个路由级别的跨域拦截器,加在路由之前。拦截器中加入如下两行代码,然后再在路由器中加上该拦截器。该方法的原理就是每次请求controller之前都先进行设置跨域许可设定。还有一种jsonp的方式,这里就不说了,可以参考链接:https://my.oschina.net/aixiaohua/blog/662221


public class CorsInterceptor implements Interceptor{
@Override
public void intercept(Invocation inv){
inv.getResponse().addHeader("Access-Control-Allow-Origin", "*");
inv.invoke();
}
}

至于跨域的原理,我个人的理解就是html5页面请求本地服务器不会发生跨域问题,当处于一种前后端分离开发时候,由于别人请求的是我台电脑(服务器)的数据,就会发生跨域问题。如果想更详尽的了解,大家可以自行百度。(本人没有深入了解,只是一些浅知拙见,如有误,请大神们不吝赐教。)

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台