当使用jQuery Ajax post请求时可能会遇到类似这样的错误提示

XMLHttpRequest cannot oad http://xxxxxx. Origin http://xxxxxx is not allowed by Access-Control-Allow-Origin.

这是Ajax跨域访问权限的问题,服务器端不接受来自另一个不同IP地址的由脚本文件发出的http请求。解决这个问题需要在服务器端进行配置使服务器端可以接受来自不同域的脚本文件的http请求。一个简单的解决方法是在服务器端配置Jetty Cross Origin Filter。

首先你需要下载jetty-servlets.jar。下载地址http://central.maven.org/maven2/org/eclipse/jetty/jetty-servlets/ 。然后将jetty-servlets.jar导入到WEB-INF/lib文件夹。最后在web.xml文件配置一些简单的参数就可以使服务器端允许跨域访问。一个典型的配置是这样的:

技术分享
1 <web-app>
2
3 <filter>
4
5 <filter-name>cross-origin</filter-name>
6
7 <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
8
9 <init-param>
10
11 <param-name>allowedOrigins</param-name>
12
13 <param-value>*</param-value>
14
15 </init-param>
16
17 <init-param>
18
19 <param-name>allowedMethods</param-name>
20
21 <param-value>GET,POST,OPTIONS,DELETE,PUT,HEAD</param-value>
22
23 </init-param>
24
25 <init-param>
26
27 <param-name>allowCredentials</param-name>
28
29 <param-value>true</param-value>
30
31 </init-param>
32
33 <init-param>
34
35 <param-name>allowCredentials</param-name>
36
37 <param-value>true</param-value>
38
39 </init-param>
40
41 </filter>
42
43 <filter-mapping>
44
45 <filter-name>cross-origin</filter-name>
46
47 <url-pattern>/rest/*</url-pattern>
48
49 </filter-mapping>
50
51 </web-app>
Jetty Cross Origin配置方法
接下来解释参数的具体意义:

allowedOrigins: 允许跨域访问的域名或链接地址,多个地址用逗号分隔,默认值为"*", 表示接受来自所有域的访问请求。

allowedMethods: 可接受的http请求方法,多个方法用逗号分隔,默认为GET, PSOT, HEAD.

allowCredentials: 是否允许受信任的请求访问资源,默认为true。

有关其他详细配置可以参考官方文档:

http://www.eclipse.org/jetty/documentation/current/cross-origin-filter.html

CrossOriginFilter的更多相关文章

  1. jetty 最后版本类库树, 基本上大多数应用都够了

    d:\jetty-distribution-8.1.17.v20150415\lib\annotations\javax.annotation-1.1.0.v201108011116.jarjavax ...

  2. cometd的服务器配置

    CometDServlet必须在web.xml中进行配置,如下: <servlet>        <servlet-name>cometd</servlet-name& ...

  3. 深入了解 Dojo 的服务器推送技术

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  4. 基于CORS的geoserver同源访问策略

    这个问题理顺整个2天.终于攻克.记录下来. 1.下载文件 首先下载cors压缩包,解压,得到的是org/mortbay/servlets/CrossOriginFilter.class文件,把此文件拷 ...

  5. Java跨域设置

    Access-Control-Allow-Origin 为允许哪些Origin发起跨域请求. 这里设置为"*"表示允许所有,通常设置为所有并不安全,最好指定一下. Access-C ...

  6. java SSM 解决跨域问题

    什么是跨域 跨域是指从一个域名的网页去请求另一个域名的资源.比如从www.baidu.com 页面去请求 www.google.com 的资源.跨域的严格一点的定义是:只要 协议,域名,端口有任何一个 ...

  7. dropwizard使用cors支持跨域浏览器取不到自定义header问题

    dropwizard支持cors的配置如下: public void run(Configuration conf, Environment environment) { // Enable CORS ...

  8. 【Access-Control-Allow-Origin】跨域问题

    [前言] 在实际项目中,可能是多个项目共同完成某个功能,他们之间需要实现数据的交互.这样就会需要有跨域的问题. 比如,发布在不同电脑上的不同项目之间,用不同语言开发的项目之间…… [JSONP] 当使 ...

  9. 关于后台程序java报错问题解决

    HTTP Status – Internal Server Error Type Exception Report Message Handler processing failed; nested ...

随机推荐

  1. 一个IP与多个域名绑定

    方法一:通过端口区分 方法二:通过serverName区分(推荐) 1.httpd.conf打开 virtual host虚拟主机配置 2.httpd-vhost.conf 添加配置 <Virt ...

  2. Newtonsoft.Json 版本不一致导致错误

    可以在配置文件添加这部分,其他版本的不一致,也可使用这种方式解决. <runtime> <assemblyBinding xmlns="urn:schemas-micros ...

  3. Mysql基本用法-left join、right join、 inner join、子查询和join-02

    left join #左连接又叫外连接 left join 返回左表中所有记录和右表中连接字段相等的记录  test_user表 phpcvs表 SQL: select * from test_use ...

  4. 详解python的数字类型变量与其方法

    以下内容引自:https://www.jb51.net/article/97752.htm python数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间.下面 ...

  5. Scrapy 分布式爬取

    由于受到计算机能力和网络带宽的限制,单台计算机运行的爬虫咋爬取数据量较大时,需要耗费很长时间.分布式爬取的思想是“人多力量大”,在网络中的多台计算机同时运行程序,公童完成一个大型爬取任务, Scrap ...

  6. 华为事件对A股的影响思考

    美国对华为实施禁商令: 利好:自主可控-替代品 软件:国产操作系统(中国软件,浪潮软件,湘邮科技...) 芯片:国产芯片(士微兰,国民技术...) 利好:华为优势产品 5G: 利好:反制资源 稀土永磁 ...

  7. Primecoin服务端更新--操作流程

    Primecoin服务端更新流程:  一.下载更新文件primecoin_x.y.z_xx.zip到/servers目录下:这里是把:版本primecoin0161alpha1更新到:版本primec ...

  8. div display 常用属性

    none:元素不被显示. block:元素将显示为块级元素,此元素前后会带有换行符. inline:行内元素(即一个挨着一个,都在同一行按从左至右的顺序显示,不单独占一行). 参考: http://w ...

  9. CCF认证201909-4推荐系统

    #include <iostream> #include <list> #include <set> #include <vector> using n ...

  10. leetcode 390. 消除游戏

    {20-01-29 19:22} class Solution { public int lastRemaining(int n) { return help(n); } public static ...