Jfinal跨域问题

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

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

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

1<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 3 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 4 version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"> 5 6 <!-- cors --> 7 <filter> 8 <filter-name>CORS</filter-name> 9 <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> 10 <init-param> 11 <param-name>cors.allowOrigin</param-name> 12 <param-value>*</param-value> 13 </init-param> 14 <init-param> 15 <param-name>cors.supportedMethods</param-name> 16 <param-value>GET, POST, HEAD, PUT, DELETE</param-value> 17 </init-param> 18 <init-param> 19 <param-name>cors.supportedHeaders</param-name> 20 <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> 21 </init-param> 22 <init-param> 23 <param-name>cors.exposedHeaders</param-name> 24 <param-value>Set-Cookie</param-value> 25 </init-param> 26 <init-param> 27 <param-name>cors.supportsCredentials</param-name> 28 <param-value>true</param-value> 29 </init-param> 30 </filter> 31 <filter-mapping> 32 <filter-name>CORS</filter-name> 33 <url-pattern>/*</url-pattern> 34 </filter-mapping> 35 <!-- jfinal --> 36 <filter> 37 <filter-name>jfinal</filter-name> 38 <filter-class>com.jfinal.core.JFinalFilter</filter-class> 39 <init-param> 40 <param-name>configClass</param-name> 41 <param-value>com.ssc.MainConfig</param-value> 42 </init-param> 43 </filter> 44 <filter-mapping> 45 <filter-name>jfinal</filter-name> 46 <url-pattern>/*</url-pattern> 47 </filter-mapping></web-app>

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

1/* 2 * 前端解决跨域问题 3 */ 4public class CorsInterceptor implements Interceptor { 5 6 @Override 7 public void intercept(Invocation inv) { 8 inv.getController().getResponse().addHeader("Access-Control-Allow-Origin", "*"); 9 inv.invoke(); 10 } 11 12}

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

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Java获得今日零时零分零秒的时间(Date型)

publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS

JS 苹果手机日期显示NaN问题

问题描述newDate("2019122910:30:00")在IOS下显示为NaN原因分析带的日期IOS下存在兼容问题解决方法字符串替换letdateStr"2019122910:30:00";datedateStr.repl