Firebase Fetch - 无访问控制允许原点

问题描述 投票:2回答:2

我正在用React + Redux开发一个应用程序,我在JSON数据库中有我的Firebase数据库。为此,我尝试从有效的URL(从Firebase模拟器验证)fetch我的数据

let firebase = 'https://******.firebaseio.com/**/*/***/*' 
    return (dispatch) => {
        return fetch(firebase)
            .then(res => res.json())
            .then(json => dispatch({ type: 'GET_JSON', payload: json }))
    }

这回到我的错误:Fetch API cannot load https://console.firebase.google.com/project/****/database/data/**/*/***/*. Redirect from 'https://console.firebase.google.com/project/****/database/data/**/*/***/*' to 'https://accounts.google.com/ServiceLogin?ltmpl=firebase&osid=1&passive=true…ole.firebase.google.com/project/****/database/data/**/*/***/*' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' 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的第二个参数{ mode: 'no-cors', credentials: 'same-origin'},但是当我尝试这个时,我得到了Uncaught (in promise) SyntaxError: Unexpected end of input

我错过了什么?

javascript reactjs cors redux fetch
2个回答
0
投票
likely error that arise to  cors blocked when using firebase is
when you initiate a put or get request with an incomplete firebase url
e.g
// wrong form
 this.http.get('https://******.firebaseio.com/data')   //this will throw an exception

// correct form                                                    
  this.http.get('https://******.firebaseio.com/data.json')

-2
投票

对于允许跨域的简单请求,服务器只需要将Access-Control-Allow-Origin头添加到响应中。

如果您有任何疑问,请参考这篇文章

Cross-Origin XMLHttpRequest

Using CORS

© www.soinside.com 2019 - 2024. All rights reserved.