Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
Reactjs React JS:CORS错误,在尝试获取资源时导致NetworkError_Reactjs_Spring_Proxy_Cors_Response - Fatal编程技术网

Reactjs React JS:CORS错误,在尝试获取资源时导致NetworkError

Reactjs React JS:CORS错误,在尝试获取资源时导致NetworkError,reactjs,spring,proxy,cors,response,Reactjs,Spring,Proxy,Cors,Response,我已经找到了对我有帮助的,但是在我的proxy.js中添加了这样的标题之后: const proxy = require('http-proxy-middleware'); module.exports = function(app) { app.use(function(req, res, next) { //adding headers to allow CORS res.header("Access-Control-Allow-Origin", "*");

我已经找到了对我有帮助的,但是在我的proxy.js中添加了这样的标题之后:

const proxy = require('http-proxy-middleware');

module.exports = function(app) {
    app.use(function(req, res, next) {
//adding headers to allow CORS
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        next();

    });
    app.use(proxy('/api', { target: 'http://localhost:8080' }));
}
在提取时,我还添加了标题以确保其正常工作:

fetch('http://localhost:8080/api',{
            headers:{
                'Access-Control-Allow-Origin':'*'
            },

        })
            .then(res => res.json())
            .then((data) => {
                this.setState({ contacts: data })
            })
            .catch(console.log)
    }
在尝试获取资源时,仍然会出现错误:TypeError:NetworkError

这个.setState{contacts:data}应该存储由我的后端Java程序交付的JSON对象。JSON对象位于localhost:8080/api,只是字符串

我的React前端在本地主机上运行:3000

我在哪里需要这个标题以避免出现CORS错误,我更希望在没有npm库CORS或任何浏览器插件的情况下工作。如果我没有弄错的话,我还应该用localhost:8080替换“*”,对吗? 我的最终目标是将这些字符串动态地放入表中的PrimeReact组件中

编辑:sideshowbarker请求的完整错误消息:

警告:

已阻止跨源请求:同一源规则禁止在处读取外部资源。原因:CORS飞行前频道未成功

警告:

已阻止跨源请求:同一源规则禁止在处读取外部资源。原因:CORS飞行前通道失败

错误:

TypeError:尝试获取资源时出现NetworkError

//它是德语的,所以我无法上传截图,翻译了它
我忘了提到我也将@CrossOrigin放在我的Restcontroller上

无法评论,因为rep太低,但是你设置了app.listen8080

另外,如果您在本地主机上同时运行CORS,我认为您不需要更改任何与CORS相关的内容

您的浏览器中是否有可能导致此问题的更改?尝试不同的浏览器


此外,我还建议使用axios,将其定义为前后移动,确保当您进入浏览器时,屏幕上会显示JSON。

经过无数个小时的调试,结果证明我没有使用http.cors;进入我的WebSecurityConfig.java 我在阅读本教程后发现:

浏览器在devtools控制台中记录的确切完整错误消息是什么?我在app.usefunctionreq、res、next之前添加了app.listen{但是没有发生任何事情,localhost显示JSON