【问题标题】:CORS issue - Or not?CORS 问题 - 或者不是?
【发布时间】:2018-08-20 05:07:00
【问题描述】:

我正在使用 Angular 4 构建网站。
我的 url 服务器端(Web Api)是http://localhost:55499/api 我的 url 客户端是http://localhost:4200
而且效果很好。
由于各种原因,我将 url 服务器更改为 http://localhost/AAA/api/,并开始使用 iis express 而不是本地 iis。
从那以后它就停止了工作。
带来以下错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:4200' 因此不允许访问。

响应的 HTTP 状态代码为 400。

我的回复中有Access-Control-Allow-Origin:http://localhost:4200

我在控制器中有:

[EnableCors(origins: "http://localhost:4200", headers: " * ", methods: " * ")]

我使用 IIS EXPRESS。

【问题讨论】:

  • 我建议不要使用"*" 它仅适用于配置。它应该像 Headers: POST, GET, OPTIONS 和方法一样。

标签: angular asp.net-web-api2 iis-express


【解决方案1】:

您应该指定要允许的标头和方法。你只有两个空字符串。

【讨论】:

  • 嗬,对不起,我不知道为什么,但“”已被删除。我有这一行 [EnableCors(origins: "localhost:4200", headers: " ", 方法: "*")]
【解决方案2】:

这基本上是您在不同域上尝试访问不同域上的数据或资源的域访问问题。

如果你使用 node_modules 安装 cors 模块。并在您的服务器应用程序中使用它,如下所示

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

或者您可以为单个路由启用此功能,如下所示。

 var express = require('express')
    var cors = require('cors')
    var app = express()
    app.get('/products/:id', cors(), function (req, res, next) {
      res.json({msg: 'This is CORS-enabled for a Single Route'})
    })

另请参阅stack answer by apsillers

【讨论】:

    猜你喜欢
    • 2020-10-01
    • 2017-04-13
    • 1970-01-01
    • 2013-08-22
    • 2022-12-16
    • 2020-02-18
    • 2018-06-13
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多