小编bek*_*kon的帖子

使用HTTP状态代码403在tomcat 8中阻止交叉原始请求

它似乎是一个已知的问题,关于这个主题存在很多问题,但是,我的情况非常奇怪.我有一个部署在tomcat 8.0.36上的简单Web应用程序.我已正确配置CORS:

<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

浏览器阻止了跨源请求:

请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" https://www.mytestpage.com "访问.响应具有HTTP状态代码403.

在tomcat日志文件中,我也看到403的响应代码.有趣的是,在跨源请求的情况下,我的应用程序的代码永远不会被执行.在到达我的申请之前,请求被阻止,并且立即发送403.我在tomcat面前没有apache,它是简单的tomcat.我尝试了很多东西,包括将原点列入白名单并指定允许的标题 - 没有任何帮助.我还尝试以编程方式设置标头,直到我发现从不执行跨源请求的代码.

UPD:结束点接受POST请求.这些POST请求作为XmlHttpRequests从JS片段发送.

有什么想法可以吗?

ps我可以成功获得相同的原始请求.

post cors http-status-code-403 tomcat8

7
推荐指数
1
解决办法
1万
查看次数

NodeJS https请求中的证书问题

我在发出 https get 请求时出现以下错误

{ Error: write EPROTO 101057795:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:openssl\ssl\s23_clnt.c:802:
at _errnoException (util.js:992:11)
at WriteWrap.afterWrite [as oncomplete] (net.js:864:14) code: 'EPROTO', errno: 'EPROTO', syscall: 'write' }
Run Code Online (Sandbox Code Playgroud)

我正在尝试向不需要代理的公司内部资源发出请求。

const request = require('request')
var token= myToken
request({
  method: 'post',
  url: 'https://myURL',
  data: {
    myData
  },
  headers: { 'Authorization': 'Bearer myToken' },
  agentOptions: {
    rejectUnauthorized: false,
  },
}, function (error, response, body) {
if(error){
  console.log('Error: ', error)
} else {
  console.log(body)
}
})
Run Code Online (Sandbox Code Playgroud)

我的 .npmrc 中也有 strict-ssl=false 。

我注意到我可以毫无问题地进行相同的调用curl。

curl -k1 …
Run Code Online (Sandbox Code Playgroud)

https ssl-certificate node.js

0
推荐指数
1
解决办法
3590
查看次数