我需要从服务器的获取请求中获取JSON响应。我设置了一个代理,并且在使用代理安全时我得到403禁止响应:false。但我可以从浏览器URL访问数据库。
可能是什么原因?
另外我想添加"绕过"在package.JSON中反应代理配置。 我该怎么办?
"bypass": function (req, res, proxyOptions) {
req.headers['Access-Control-Allow-Origin'] = "*";
req.headers['Access-Control-Allow-Methods'] = 'GET,PUT,POST,DELETE';
req.headers['Access-Control-Allow-Headers'] = 'Content-Type';
}
谢谢!
答案 0 :(得分:0)
因为问题出在Dataset<Tuple2<String, SomeClass>> groupedAndReducedDS = ds.groupByKey(
(MapFunction<SomeClass, String> ) x -> { return x.getID();}, Encoders.STRING())
.reduceGroups((x,y) -> {
if (x.getTime().after(y.getTime()))
return x;
else
return y;
}).withColumnRenamed("ReduceAggregator(SomeClass)","abc");
Dataset<Tuple2<SomeClass1, Row>> joinedDS =
dsOfSomeClass1.joinWith(
b, dsOfSomeClass1.col("COLA")
.equalTo(groupedAndReducedDS.col("abc.COLA")));
我认为发生这种情况是因为服务器只接受https连接。
答案 1 :(得分:0)
好的,我解决了这个问题。我使用create-react-app webpack文件(webpack.config.dev和webpackDevServer)来设置代理:
devServer: {
proxy: {
'/api': {
target: '*****',
secure: false,
changeOrigin: true,
logLevel: "debug",
bypass: function (req, res, proxyOptions) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
}
}
}
},
然后我在获取请求中添加了credentials: 'include'
,因为浏览器没有发送带有请求的cookie。
希望这会对某人有所帮助。
此外,如果您使用的是http和localhost,浏览器将不会捕获服务器发送的任何cookie。您必须使用https并将您的域名更改为Ex:dev.xxx.com
中的两个点答案 2 :(得分:0)
或者您可以
npm我http-proxy-middleware --save
并在src内的create-react-app中创建setupProxy.js文件
const proxy=require("http-proxy-middleware")
module.exports=function(app){
app.use(proxy('/api',{target:"http://localhost:5000"})) /your port
}
该软件包将自动在此文件中查找,因此您无需导入任何地方