Angular2 火力地堡 : Response for preflight has invalid HTTP status code 405

标签 angular firebase angular2-services

我是 Angular2 的新手。在尝试从 Firebase API 获取值时,出现以下错误:

OPTIONS https://udemy-ng-http.firebaseio.com/data 405 (Method Not Allowed)

Failed to load https://udemy-ng-http.firebaseio.com/data: Response for preflight has 

invalid HTTP status code 405

但我能够将数据发布到 Firebase API 端点。

我还尝试了该社区提供的其他解决方案,但没有帮助。下面是我的代码。

代码:

 getServer(){
    let headers = new Headers();
    headers.append('Access-Control-Allow-Headers', 'Content-Type');
    headers.append('Access-Control-Allow-Origin', '*');
    headers.append('Content-Type', 'application/json') ;
    headers.append('charset','UTF-8');
    headers.append('Accept','application/json');
    let options = new RequestOptions({ headers: headers });

    return this.http.get('https://udemy-ng-http.firebaseio.com/data',options)
        .map(
            (response: Response) => {
                const data = response.json();
                for (const server of data) {
                  server.name = 'FETCHED_' + server.name;
                }
                return data;
            }
        )
        .catch(
            (error: Response) => {
              return Observable.throw('Something went wrong');
            }
        );
}

最佳答案

尝试删除 headers.append('Access-Control-Allow-Origin', '*');

有两个sample functions由 Firebase 团队提供,演示了 CORS 的使用:

第二个示例使用与您当前使用的不同的方式处理 cors。

此外,考虑像这样导入,如示例所示:

const cors = require('cors')({origin: true});

关于Angular2 火力地堡 : Response for preflight has invalid HTTP status code 405,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47367464/

相关文章:

angular - angular2 karma 测试的新手 - 添加 app.module 到 TestBed.configureTestingModule

angular - Andersstand 如何初始化 keycloak-angular 服务? (bearerExcludedUrls 等...)

angular - 如何在 Angular2 rc3 路由中处理来自 oauth 重定向 url 的哈希片段

ios - 如何使用 Swift 保持数据源与 firebase 实时数据库同步?

javascript - 订阅 observable 返回 undefined

angular - 类型错误 : Object doesn't support property or method 'map' - AngularJS2

angular - 为什么将空字符串设置为空 react 形式成为空字符串

xcode - 没有这样的模块 'Firebase'?

swift - 如何使用 Firestore 合并两个查询 - Swift

http - 我在哪里可以进行模拟 http 调用来学习 Angular2 前端 http 调用