Firebase Fetch - No Access-Control-Allow-Origin
Firebase Fetch - No Access-Control-Allow-Origin
我正在开发一个应用程序与React + Redux
,我有我的JSON
数据库内的Firebase
DB。要做到这一点,我试图从有效的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 }))
}
返回错误:
取回API无法加载https://console.firebase.google.com/project/****/database/data/**/*/***/*。从'https://console.firebase.google.com/project//database/data/**/////'重定向到'https://accounts.google.com/ServiceLogin?ltmpl=firebase&osid=1&passive=true...ole.firebase.google.com/project//database/data///**/'已被CORS策略阻止:请求的资源上不存在'Access-Control-Allow-Origin'标头。因此,不允许访问原点'null'。如果一个不透明的响应满足你的需要,设置请求的模式为'no-cors'来获取CORS禁用的资源。
我尝试了许多解决方案,如添加到fetch的第二个参数{ mode: 'no-cors', credentials: 'same-origin'}
,但当我尝试这个我得到Uncaught (in promise) SyntaxError: Unexpected end of input
。
我错过了什么?
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')
我在fetch
的serviceworker
实现中遇到了这个问题
self.addEventListener('fetch', (e) => {
fetch(e.request) // valid arg && works with firebase
fetch(e.request.url) // valid arg but will cause access-control error!
}
对于允许跨域的简单请求,服务器只需要将Access-Control-Allow-Origin
标头添加到响应中。
如果您有任何疑问,也可以参考本教程
跨域XMLHttpRequest
使用歌珥。- 如何解决Access Control Allow Origin错误
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- XMLHttpRequest : 不被 access-control-allow-origin 所允许
- 可以在Access Control Allow Origin中指定端口
- Access Control Allow Origin阻止我访问google api,尽管使用了dataType:
- JSONP跨原点错误'不存在Access Control Allow Origin标头'
- 角度:原点http://localhost在Access Control Allow Origin标头中找不到
- Angular$resource调用不被Access Control Allow使用Safari接受,而被Chrome接
- Instagram API access_token request and Access-Control-Allow-
- 方法不允许 — 从 Angularjs 中的请求标头中删除 Access-Control-Request-Method
- Yahoo - OAuth2 - SocialAPI:在初始响应中不返回“Access-Control-Allow-Or
- 在 Safari 上使用通用分析的 Access-Control-Allow-Origin 不允许
- Windows上的CouchDB说请求的资源上不存在“Access-Control-Allow-Origin”标头
- XMLHttpRequest 无法加载 http No Access-Control-Allow-Origin head
- Emberjs/Chrome/FFox:预检中的数字 Access-Control-Request-Headers
- Simple XMLHttpRequest 失败,Access-Control-Allow-Origin 标头为 nul
- Flickr API OAuth Access Token request and Access-Control-All
- jquery.ajax Access-Control-Allow-Origin
- Chrome Origin 空值是 Access-Control-Allow-Origin 所允许的
- Angular JS$http Access-Control-Allow-Origin中的Credentials和通配符