gpt4 book ai didi

tomcat - Apache Tomcat 和 CORS

转载 作者:行者123 更新时间:2023-11-28 22:00:23 25 4
gpt4 key购买 nike

我正在使用服务器并尝试执行跨域脚本。

我尝试添加 http://software.dzhuvinov.com/cors-filter-installation.html并将 java 文件放在 .../tomcat/lib/中(以及 .../tomcat/webapps/MYAPP/WEB-INF/lib/中,因为它不起作用)并修改了 web.xml 以包含。 ..

<servlet>
<description>Desciption</description>
<display-name>Displayname</display-name>
<servlet-name>myservlet</servlet-name>
<servlet-class>java.path</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/wsdl</url-pattern>
</servlet-mapping>
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>CORS</filter-name>
<servlet-name>myservlet</servlet-name>
</filter-mapping>

然后我重新启动网络服务器。

我无法让 Access-Control-Allow-Origin 工作。我不断收到 403 错误。

我想我一定没有正确遵循网站上的 3 个步骤。有什么想法可以让它发挥作用吗?

谢谢。

Edit1:我在此调用之前将我的 url 和 soap 消息声明为 url 和 soapMessage。我确信它们都格式正确,因为它们在 soapUI 中运行良好。

电话是:

$.ajax({ 
type: "POST",
url: url,
dataType: "xml",
contentType: "text/xml",
//crossDomain: true,
data: soapMessage,
//xhrFields: {
// withCredentials: true
//},
success: function(data){
var xml = data.xml;
console.log("Success!");
console.log(xml);
//[do something with the xml]
},
error: function(data){
var xml = data.xml;
console.log("Error!");
console.log(xml);
//[do something with the xml]
},
complete: function(data){
var xml = data.xml;
console.log("Complete!");
console.log(xml);
//[do something with the xml]
}

我一直在尝试不同的领域,但运气不佳。我不确定它是否值得注意,但是当我不包含数据类型时,响应 header 指示我希望看到的 Access-Control-Allow-Origin 并返回 415 错误(不支持媒体类型)。

示例请求 header :

OPTIONS /servlet/wsdl?wsdl HTTP/1.1
Host: otherserver:8080
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: thiswebpage.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1
Access-Control-Request-Headers: origin, content-type, accept
Accept: */*
Referer: thiswebpage.com/thisForm.cfm
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

示例响应 header :

HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Content-Type: text/plain
Content-Length: 86
Date: Tue, 28 Aug 2012 13:12:04 GMT

还有其他过滤器(web.xml 文件很大),但唯一可能影响事物的是这些。我需要去创建文件的公司,因为我的老板可能不会让我接触这些(我只是实习生)。

<filter>
<filter-name>agentSecurityModeFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>agentSecurityModeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

我不确定他们在这里做什么...他们似乎将相同的过滤器两次添加到具有不同名称的相同 url 模式。

再次感谢!

最佳答案

您是否尝试过以下列方式配置 CORSFilter?

<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>

<init-param>
<param-name>cors.allowOrigin</param-name>
<param-value>thiswebpage.com</param-value>
</init-param>
</filter>

关于tomcat - Apache Tomcat 和 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12149355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com