文档章节

tomcat下的js跨域

是零壹啊
 是零壹啊
发布于 2016/05/03 21:48
字数 283
阅读 96
收藏 0

当页面访问外部域名的时候,会发生跨域问题。浏览器返回的错误是:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

这个http头是CORS(跨源资源共享)协议规定中设置的,专门用于资源共享

在 js 里面,可以使用jsonp等方案来解决这个问题。但是修改js,客户端和服务端都需要修改代码, 所以不推荐

个人比较推荐服务端配置可跨域,也算是开了一个后门吧

目前的使用tomcat 进行项目部署,下面是实现代码。

  1. cors-filter-1.7.jar, java-property-utils-1.9.jar 放到 WEB-INF 下的 bin 目录中

  2. 在web.xml 下面添加下面的配置(如果你也用JFinal,需要把它放到JFinal的拦截器前面)

嗯。整个人生都美好了起来。

<filter>
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
    <init-param>
        <param-name>cors.allowOrigin</param-name>
        <param-value>*</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportedMethods</param-name>
        <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportedHeaders</param-name>
        <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
    </init-param>
    <init-param>
        <param-name>cors.exposedHeaders</param-name>
        <param-value>Set-Cookie</param-value>
    </init-param>
    <init-param>
        <param-name>cors.supportsCredentials</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>



© 著作权归作者所有

是零壹啊
粉丝 1
博文 13
码字总数 5080
作品 0
杭州
私信 提问
AJAX跨域调用相关知识-CORS和JSONP(引)

AJAX跨域调用相关知识-CORS和JSONP 1、什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议、域名、端口)的内容。 但是我们项目开发过程中,经...

辉煌霸猪
06/26
58
0
面试 | Ajax进阶----jQuery中的Ajax(下)

剩下的两个API: 1.$.getScript()是动态获取js代码的 有时候我们看到在网上看到的一些效果,找不到对应js文件,那就说明有可能是动态获取js代码了。 $.getScript(url,callback) - 动态读取脚...

一个敲代码的前端妹子
2018/06/28
0
0
js/异步/跨域(文件服务器)/文件上传/大文件拆分上传,方案设计请教

需求: 通过js异步上传文件到文件服务器(跨域),并返回存放地址。 疑问点: 1. js异步文件上传实现方案 2. 文件过大,可能存在拆分上传问题 3. ajax跨域问题 4. 文件服务器,如何接受处理(...

蝴蝶和向日葵
2018/08/20
553
4
Ajax跨域问题研究笔记

作者:fbysss msn:jameslastchina@hotmail.com blog:blog.csdn.net/fbysss 声明:本文由fbysss原创,转载请注明出处 关键字:Ajax跨域 一.试验准备 修改c:/windows/system32/drivers/etc/hos...

长平狐
2012/10/17
316
0
JavaScript跨域问题解决办法

一、什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下...

谢思华
2015/08/24
222
0

没有更多内容

加载失败,请刷新页面

加载更多

家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
25分钟前
4
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
26分钟前
3
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
28分钟前
6
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
32分钟前
3
0
使用nodeJS实现前端项目自动化之项目构建和文件合并

本文转载于:专业的前端网站➜使用nodeJS实现前端项目自动化之项目构建和文件合并 前面的话   一般地,我们使用构建工具来完成项目的自动化操作。本文主要介绍如何使用nodeJS来实现简单的项...

前端老手
46分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部