尝试一切后,CORS仍然给我错误

时间:2017-08-10 12:47:10

标签: node.js angular express ionic2 cors

我正在尝试从我的Ionic应用程序发送请求到我的NodeJS后端。我像大多数人一样使用Express来提供后端请求。当我尝试使用Angular 2 HTTP接口(@angular/http)发送请求时,我收到CORS错误。 在Postman中发送请求工作正常(如果重要)

home.ts

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController, public http: Http) {

  }

  GetCarInfo() {
    this.http.get("http://api.website.dk/licenseplate/?plate=XXXXXX").map(res => res.json()).subscribe(data => {
      console.log("woohoo it worked");
    });
  }
}

nodeJS index.js后端

var express = require('express');
var request = require('request');

var app = express();
var port = 3001;

app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    next();
});

app.get('/licenseplate', function(req, res) {
    res.send({
        name: "Lamborghini",
        horsepower: 500
    });
});

var server = app.listen(port, function() {
    console.log('Express server listening on port ' + port);
});

我尝试过多种方法,例如:

  1. 以上使用app.use()
  2. cors()中间件
  3. 直接在app.get()
  4. 中添加标题

    错误:

      

    XMLHttpRequest无法加载http://api.website.dk/licenseplate/?plate=XXXXXX。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:8100”访问。

    它应该添加了标头,以便任何人都可以在我的示例中向NodeJS应用程序发送请求。我做错了什么?

0 个答案:

没有答案
相关问题