我有一个页面,当用户单击按钮时,应用程序将侦听并创建对我的本地服务器的访存调用,该调用将执行一个过程,然后重定向到外部网址,例如google.com(我实际上放置了主页只是为了查看它是否可以工作,但是什么也没收到,我得到相同的错误(服务器和React应用程序位于不同的端口上))如何避免当前遇到的错误“访问在'http://localhost:3001/处获取” (从“ http://localhost:3000/servreq”重定向(从“ Add Headers”重定向)已被CORS策略阻止:对预检请求的响应未通过访问控制检查:邮件头上没有“ Access-Control-Allow-Origin”标头请求的资源。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。”
客户:--------------------------------------------- -
//.....
testitem(){
fetch('http://localhost:3000/payreq', {
method: 'post',
headers: { 'Content-Type': 'application/json'},
body: JSON.stringify({
})
})
}
//......
<button className="btn btn-primary" onClick={this.testitem}>Redirect</button>
//......
服务器:--------------------------------------------- -
const express= require('express');
const bodyParser= require('body-parser');
const cors=require('cors');
const app=express();
app.use(bodyParser.json());
app.use(cors({origin: 'http://localhost:3001'}));
//im requesting from say localhost:3001/test/test
app.post('/',(req,res)=>{
res.redirect('http://localhost:3001/');
})
我尝试执行以下操作,但没有结果: (我知道原产地为空,但我不知道如何解决)
-Wildcard method '*' (i dont think this is the appropriate plus does not work)
-{{3}}
一次尝试确实奏效了,但是我认为应该怎么做。
我只是在服务器端生成了一个res.json(要访问的网站),而在客户端上则只是读取并使用window.location = response进行重定向,但我仍然不认为这是解决问题的方法如果那里有人可以帮助我,我会很感激。
答案 0 :(得分:0)
如果要从其他应用程序服务器请求页面,则必须通过在托管应用程序服务器的web.xml中添加以下几行并将必要的jar添加到类路径中,来告诉托管应用程序服务器接受来自其他托管服务器的请求
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
必要的罐子:cors-filter.jar,java-property-utils.jar 注意:通过添加/ *,我从cors过滤器中排除了所有链接,您可以设置必要的路径。 希望能解决您的问题。