文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.问题描述

扬州现场中最开始安装了中间件WebLogic12.1.1版本,按照公司之前解决WebLogic12的方法,我们在中间件中发布了一个虚拟路径为/,根目目录文件为root的服务。

这个root文件中包含的文件如下:

在程序启动发起跨域访问时,出现了下面这个问题:

如图可见,我们虽然可以访问到crossdomain.xml,并且能得到里面的完整内容,可是程序无法走下去,后面Flash端的跨域访问无法被触发。

2.解决思路

2.1是否是crossdomain.xml内容不对

不同的Flash版本,对crossdomain.xml要求的写法可能不同。Flash9之后security机制有所改变。如果我们用Flex3访问老版本的crossdomain.xml可能会报出security error错误。网上有文章说Flash9之后的crossdomain.xml写法,allow-http-request-headers-from的配置是必须的。不过经过我自己的测试,发现即使不写这个配置,在tomcat下还是可以跨域成功的。

不过,我还是让现场工程人员将Flash换成了比较新的版本,然后crossdomain.xml也用的新版本。最后还是无法跨域成功。

2.2是否是其他配置有问题

经过在网上查找资料,发现对web.xml的配置也是有要求的。检查我们这个文件的的原始配置为:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app id="WebApp_1166189002905">

<display-name>root</display-name>

<!-- 首页文件名称 -->

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

与网上建议的配置中缺少一个mime-mapping配置,于是我又在web.xml中添加了如下配置:

<mime-mapping>

<extension>xml</extension>

<mime-type>application/xml</mime-type>

</mime-mapping>

再次发布root文件夹,然后发现这时候程序可以跨域成功了,结果如图所示:

3.为什么加入mime-mapping的探讨

我们之前发现,在WebLogic12.1.2中,不加入这个配置,跨域也是能成功的,可是在12.1.1中就不可以,究其原因可能是这个版本下不加上这个配置的话,WebLogic无法自动识别XML文件。

加入了这个配置后,在WebLogic12.1.2中,跨域也能正常。所以建议以后就用这个兼容版本的web.xml来配置WebLogic。

4.补充

4.1什么是跨域

跨域便是访问其他域名的文件或资源。举个例子,你的swf来至于A服务器,而swf中有一个请求是要访问B服务器的,于是在访问B服务器中的内容时,就需要先在B服务器上进行跨域。

4.2为什么要跨域

其实不仅仅是Flash,Javascript等一些脚本也有跨域的问题,这个主要是自身的安全机制所决定的,因为跨域访问一些文件或资源有一定的危险性,他超过了网站自身的范围,对于站外的资源无法审核其安全性,在网络病毒木马日益猖獗的今天,跨域限制访问是其安全策略的一个重要解决手段。

5其他中间件的跨域文件放置地址总结

5.1 tomcat

tomcat中的crossdomain.xml放置比较简单,地址是:apache-tomcat\webapps\ROOT。

5.2金蝶7.0

其放置地址是:Apusic-AS-7.0\domains\mydomain\applications\default\public_html。

5.3weblogic9.2

其放置地址是:..\user_projects\applications\domain1\server\examples\build\mainWebApp。

5.4与ArcGIS有关的中间件跨域

在Arcgis Server中我们也常遇到跨域问题。这里分为两种情况。

如果安装的是.net版本,则要在发布的IIS下放置crossdomain.xml文件。一般路径是C:/Inetpub/wwwroot。

如果安装的是Java版本,对于arcgis9.3版本,地址是:{arcgis安装目录}/ArcGIS/java/web_output。

对于arcgis10.0版本,地址是:{arcgis安装目录}\ArcGIS\Server10.0\java\manager\web_output。

对于arcgis10.1和10.2,具我观察,他们会在安装时便装有crossdomain.xml文件。其地址是:{ArcGIS Server安装目录 }\ArcGIS\Server\framework\runtime\tomcat\webapps\ROOT。

----------欢迎转载,但保留版权,请在醒目处标明出处:http://www.cnblogs.com/naaoveGIS/

WebLogic12.1.1中跨域问题的探讨以及几种常见中间件中跨域问题的解决方法的更多相关文章

  1. javascript中跨域问题的解决方法汇总

    javascript中实现跨域的方式总结 第一种方式:jsonp请求:jsonp的原理是利用<script>标签的跨域特性,可以不受限制地从其他域中加载资源,类似的标签还有<img& ...

  2. Ajax跨域、Json跨域、Socket跨域和Canvas跨域等同源策略限制的解决方法

    同源是指同样的协议.域名.port,三者都同样才属于同域.不符合上述定义的请求,则称为跨域. 相信每一个开发者都曾遇到过跨域请求的情况,尽管情况不一样,但问题的本质都能够归为浏览器出于安全考虑下的同源 ...

  3. 5种处理js跨域问题方法汇总(转载)

    1.JSONP跨域GET请求 ajax请求,dataType为jsonp.这种形式需要请求在服务端调整为返回callback([json-object])的形式.如果服务端返回的是普通json对象.那 ...

  4. 域用户执行金蝶K/3报错解决方法

    自从上星期测试加域意外将公司考勤系统整出事后,就再也不敢在物理机测试了. 装好虚拟机和装好金蝶K/3系统后,被这条报错信息折腾了好几天,一方面是不熟悉该软件,另一方面是几乎搜不到相关的文章. 一.问题 ...

  5. ajax原理和跨域解决方法

    ajax是异步的 JavaScript 和 XML.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 1--启动 ...

  6. 跨域请求解决方法(JSONP, CORS)

    1.跨域 假设我们页面或者应用部署在 http://www.aaa.com 上了,而我们打算从 http://www.bbb.com 请求提取数据.一般情况下,如果我们直接使用 AJAX 来请求将会失 ...

  7. ajax跨域往php程序post数据时,php程序总是执行两次的解决方法

    php程序是部署在IIS7上面,ajax提交数据时,遇到了两个问题,一个就是跨域,一个php程序总会被执行两次. 第一个问题的解决方法,是百度出来的,添加下面几行代码就可以了: header('Acc ...

  8. json跨域原理及解决方法

    这一篇文章呢,主要是之前一直听别人讲json跨域跨域,但是还是一头雾水,只知其一,于是一怒之下,翻阅各种资料,如果有不正确的地方,劳烦指正一下^_^ 首先,先了解浏览器有一个很重要安全性限制,即为同源 ...

  9. jQuery ajax跨域请求的解决方法

    在Ajax应用中,jQuery的Ajax请求是非常容易而且方便的,但是初学者经常会犯一个错误,那就是Ajax请求的url不是本地或者同一个服务器下面的URI,最后导致虽然请求200,但是不会返回任何数 ...

随机推荐

  1. 流行的JavaScript库 ——jQuery

    1.为了简化 JavaScript 的开发, 一些 JavsScript 库诞生了. JavaScript 库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互的 Web2.0 特性的富客 ...

  2. c# GridControl怎么换行

    百度找到的答案 1.ColumnEdit 增加 MemoEdit2.AppearanceCell-TextOptions- WordWrap3.OptionsView RowAutoHeight

  3. aspnet_isapi.dll设置图文介绍.net的程序实现伪静态

    用URLRewriter控件 ①:首先要有这个文件URLRewriter.dll,如果没有,赶快到网上下载一个,并将其放到下面的bin目录里面,并且将其引用添加到下面里面; ②:下面就是Web.Con ...

  4. linux下打包zip文件

    zip [参数] [打包后的文件名] [打包的目录路径] linux zip命令参数列表:-a 将文件转成ASCII模式-F 尝试修复损坏的压缩文件    -h 显示帮助界面-m       将文件压 ...

  5. MySQL 注册码

    最近开发是用MySQL数据库,之前安装后,每次打开Navicat Premium 都提示 “试用一个月”,“ 注册”,然后为了方便,就都选择了 试用的, 一个月后,就必须的输入注册码,(还有一个是 什 ...

  6. ASP.NET vNext 概述

    兼容Mono的下一代云环境Web开发框架ASP.NET vNext 我们知道了ASP.NET vNext是一个全新的框架,是一个与时俱进的框架.这篇文章将深入讨论在整体架构更多的细节,文档参照 ASP ...

  7. chunkupload 文件上传断点续传组件(java) - 正式发布

    chunkupload简介 chunkupload是一款基于java语言的断点续传组件,针对文件上传,非文件下载,集成方便,使用简单. chunkupload实现如下功能: ·  实现断点续传 ·  ...

  8. JavaScript中的百变大咖~this

    原文链接:http://www.jeffjade.com/2015/08/03/2015-08-03-javascript-this/ JavaScript作为一种脚本语言身份的存在,因此被很多人认为 ...

  9. 常用RGB色值表

      R G B 值   R G B 值   R G B 值 黑色 0 0 0 #000000 黄色 255 255 0 #FFFF00 浅灰蓝色 176 224 230 #B0E0E6 象牙黑 41 ...

  10. 关于CefSharp的坎坷之路

    项目背景: 公司的XX产品需要升级和以后支持多平台的使用.因为之前项目是由WPF实现的.目前以后想作为Html5来展示页面. 因为涉及到整体更改遇到的问题较多以及其他原因,所以只是内部内容区域先替换为 ...