大佬教程收集整理的这篇文章主要介绍了CORS 无法使用 CORS 过滤器工作,其中客户端和服务器位于同一 url,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 CORS 过滤器实现客户端和服务器位于同一 URL 中的 CORS。 下面是我已经实现的代码
CORS 过滤器
package com.core.web.spring.cors;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.servletexception;
import javax.servlet.Servletrequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.httpServletrequest;
import javax.servlet.http.httpServletResponse;
public class CORSFilter implements Filter{
@OverrIDe
public voID doFilter(Servletrequest req,ServletResponse res,FilterChain chain)
throws IOException,servletexception {
httpServletResponse response = (httpServletResponsE) res;
httpServletrequest request = (httpServletrequest) req;
((httpServletResponsE) res).addheader("Access-Control-Allow-Origin","http://192.168.0.103:1111");
((httpServletResponsE) res).addheader("Access-Control-Allow-Methods","GET,POST");
((httpServletResponsE) res).addheader("Access-Control-Max-Age","3600");
if ("OPTIONS".equalsIgnoreCase(request.getmethod())) {
response.setStatus(httpServletResponse.SC_OK);
} else {
chain.doFilter(req,res);
}
}
}
web.xml
<filter>
<filter-name>cors</filter-name>
<filter-class>com.core.web.spring.cors.CORSFilter</filter-class>
</filter>
<filter-mapPing>
<filter-name>cors</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapPing>
我已将 Access-Control-Allow-Origin 设置为 http://192.168.0.103:1111。我正在将邮递员工具中的原点更改为 http://192.168.0.108:1111。但它不是阻止请求,而是执行它。我收到了成功的回复。
下面是请求头和响应头
请求标头
Accept: */*
Accept-EnCoding: gzip,deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Connection: keep-alive
Content-Length: 1296
Content-Type: text/HTML; charset=UTF-8`enter code here`
Host: 192.168.0.103:1111
Origin: http://192.168.0.108:1111
Referer: http://192.168.0.103:1111/SampleTest/index.HTML
User-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/91.0.4472.124 Safari/537.36
X-requested-With: XMLhttprequest
响应标题
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET,POST
Access-Control-Allow-Origin: http://192.168.0.103:1111
Access-Control-Max-Age: 3600
Connection: keep-alive
Content-Length: 1210
Date: Sat,03 Jul 2021 06:11:55 GMT
Server: WildFly/11
Strict-Transport-Security: max-age=7776000; includeSubdomains
X-Content-Type-Options: nosniff
x-frame-options: SAMEORIGIN
X-Powered-By: Undertow/1
谁能帮我解决这个问题?
Postman 不关心 SOP(同源策略),它是一个开发工具,而不是浏览器。
CORS(跨源资源共享)和 SOP(同源策略)是客户端决定是否强制执行的服务器端配置。
与客户相关
大多数浏览器确实强制执行它以防止与 CSRF 攻击相关的问题。 大多数开发工具都不关心它。 Postman 作为开发工具不会太重视 CORS 标头,您将需要其他东西来测试。
有一些 chrome 扩展程序可以帮助您在浏览器上测试 CORS。
以上是大佬教程为你收集整理的CORS 无法使用 CORS 过滤器工作,其中客户端和服务器位于同一 url全部内容,希望文章能够帮你解决CORS 无法使用 CORS 过滤器工作,其中客户端和服务器位于同一 url所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。