使用Ajax成功加载跨域页面,但我不能在目标页面上使用javascript

时间:2015-12-12 07:00:18

标签: javascript java ajax cross-domain cors

我正在使用CORS解决方案来覆盖Ajax跨域限制。目前我可以加载一个只包含一些静态Web内容的页面。但是如果目标页面导入javascript文件,虽然我成功加载页面,但仍然会抛出一些关于js文件无法找到的错误。原因是页面上下文错误。

例如:

domain1 :(主要jsp)

domain2://domain2/index2.jsp(要加载jsp)

在domain2的页面上有一个jquery lib导入

<script src="${pageContext.request.contextPath}/crossdomain/js/jquery-1.11.3.min.js" type="text/javascript"></script>

当我刷新index1 jsp时,index2内容无法完全加载。我的浏览器抛出了一个错误 获取//domain1/crossdomain/js/jquery-1.11.3.min.js?_=1449901364502 404(未找到)
js的正确路径应该是//domain2/crossdomain/js/jquery-1.11.3.min.js如何修复它?

为了更清楚地说明,我在这里附上了代码

index1.jsp

<script type="text/javascript">
        $(document).ready(function(){
            $("#loadPage").load("http://domain2/crossdomain/index.jsp");
        });
    </script>

为了使CORS成功,我需要在第二个项目web.xml中添加以下代码。

<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>

index2.jsp

<script src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js" type="text/javascript"></script>

0 个答案:

没有答案