Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript react中的代理配置_Javascript_Reactjs_Proxy_Http Headers - Fatal编程技术网

Javascript react中的代理配置

Javascript react中的代理配置,javascript,reactjs,proxy,http-headers,Javascript,Reactjs,Proxy,Http Headers,我需要从服务器的fetch请求中获取JSON响应。我设置了一个代理,当使用proxy secure:false时,我得到403禁止响应。但是我可以从浏览器url访问数据库 原因是什么 我还想添加“旁路”以在package.JSON中响应代理配置。 我怎么做 "bypass": function (req, res, proxyOptions) { req.headers['Access-Control-Allow-Origin'] = "*";

我需要从服务器的fetch请求中获取JSON响应。我设置了一个代理,当使用proxy secure:false时,我得到403禁止响应。但是我可以从浏览器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';
        }

谢谢

好的,所以我解决了这个问题。我使用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');
                }
            }
        }
    },
然后我在fetch请求中添加了
凭据:“include”
,因为浏览器没有随请求发送cookie。 希望这能帮助别人

此外,如果您使用http和localhost,浏览器将不会捕获服务器发送的任何cookie。您必须使用https并将域更改为在Ex:dev.xxx.com中有两个点,或者您可以

npm i http代理中间件--保存

在您的CreateReact应用程序中的src create setupProxy.js文件中

const proxy=require("http-proxy-middleware")

module.exports=function(app){
    app.use(proxy('/api',{target:"http://localhost:5000"})) /your port 
}

该包将自动查看此文件,因此您不需要在任何位置导入

我不清楚您想要实现什么?您想在哪些请求上添加此标题?AJAX对任何资源(图像等)的请求?我设置了一个代理来获取对服务器的请求。当使用代理“安全”:false时,我得到禁止403响应。但我可以从浏览器访问db url。我认为添加标题会有所帮助