Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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 redux同构获取访问控制允许源_Reactjs_Redux - Fatal编程技术网

Reactjs redux同构获取访问控制允许源

Reactjs redux同构获取访问控制允许源,reactjs,redux,Reactjs,Redux,我已经编写了一个redux应用程序,我正在使用webpack dev server在本地运行。(端口8080)。我正在尝试连接到在端口9000本地运行的web服务 我连接到web服务的代码如下 return fetch(`http://localhost:9000/movies/${dimensionName.toLowerCase()}list`) .then(response => response.json()) .then(json => dispatch(r

我已经编写了一个redux应用程序,我正在使用webpack dev server在本地运行。(端口8080)。我正在尝试连接到在端口9000本地运行的web服务

我连接到web服务的代码如下

return fetch(`http://localhost:9000/movies/${dimensionName.toLowerCase()}list`)
  .then(response => response.json())
  .then(json =>
    dispatch(receivedDimensionAttributesSuccess(dimensionName, json))
  )
  .catch(error =>
    dispatch(receivedDimensionAttributesError(dimensionName, error))
  );
这会收到一个错误

Fetch API cannot load http://localhost:9000/movies/yearlist. No 'Access-
Control-Allow-Origin' header is present on the requested resource. Origin 
'http://localhost:8080' is therefore not allowed access. If an opaque response 
serves your needs, set the request's mode to 'no-cors' to fetch the resource 
with CORS disabled.
我在谷歌上搜索这个问题,找到了这个帖子

但我不喜欢涉及切换到不同库/中间件的解决方案

如何解决同构获取库的问题。

您可以阅读此内容

fetch(url[,init])

将init参数设置为允许跨域请求


尝试访问控制允许源代码是您可以在客户端控制的。这是浏览器的安全限制,需要与服务器协商

服务器可以从任何端点检索数据,但对于浏览器应用则不同。出于安全原因,您只能通过XHR从加载网页的同一服务器加载数据。 如果您需要从不同的服务器(例如外部API)加载数据,浏览器要求服务器响应,表明您被允许

请参阅上的“跨域请求”部分中的说明

你必须使用

let header = new Headers({
        'Access-Control-Allow-Origin':'*',
        'Content-Type': 'multipart/form-data'
});
而不是

let defaultOptions = {
    url:'',
    method:'POST',
    mode: 'cors',
    headers:{
        'Access-Control-Allow-Origin':'*'
    },
    body:null,
};

要启用cors

只需添加
{mode:'no-cors',}
即可禁用no'Access- 控件“允许原点”标题。有关更多信息,请参考以下url:


您的web服务允许CORS吗?啊。。。。我不知道需要在Web服务端配置CORS。我做了一个快速搜索,找到了这个。实施此操作后,问题已得到修复。可能的重复操作可通过完全删除读取响应的尝试来防止出现错误。因为代码需要读取响应,所以这并不能解决问题。
return fetch(`http://localhost:9000/movies/${dimensionName.toLowerCase()}list`**,{mode:'no-cors'**,})
  .then(response => response.json())