当前位置: 首页 > 知识库问答 >
问题:

交叉原点请求被阻止的CORS-使用角度cli解决问题[仅适用于开发人员][重复]

郗欣嘉
2023-03-14

我创建了一个小服务:

export class HelloServerService {
  private readonly rootApi: string = 'http://localhost:8080/api/';

  constructor(@Inject(HttpClient) private readonly http: HttpClient) {
  }

  public getHelloWorld(name: string): Observable<string> {
    return this.http.get(this.rootApi + name, {responseType: 'text', params: {}}) as Observable<string>;
  }
}

共有1个答案

贺海
2023-03-14

请记住:此答案仅用于开发目的

首先,关键问题是较新的浏览器阻塞了跨源请求,这也涉及到端口号的区分:

因此localhost:4200localhost:8080不是同一来源

{
  "/api": {
    "target": "http://localhost:8080",
    "secure": false,
    "logLevel": "debug",
    "pathRewrite": {
      "^/api": ""
    }
  }
}

将其添加到我们的Angular.json中

 "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "xyz:build",
            "proxyConfig": "proxy.conf.json"
          },

并通过ng Serve运行它:

预期产出:

** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
[HPM] Proxy created: /api  ->  http://localhost:8080
[HPM] Proxy rewrite rule created: "^/api" ~> ""
 类似资料:
  • 调用JSON时发生此错误。我不知道为什么会发生这个错误。 错误:

  • 当我试图从返回JSON的Symfony API获取Angular数据时,我目前面临一个错误: “阻止跨源请求:同一源策略不允许读取位于的远程资源。”http://localhost:8000/customers. (原因:缺少CORS标头“访问控制允许原点”。) 以下是完整结果的截图: 我知道这个问题已经被问了很多次,但我找不到一个有效的答案。 当我不尝试在api控制器中检索$session时,它

  • 我有一个Android、Ios和web应用程序,它使用php作为后端。所有Api在android和ios中都运行良好,但在web中抛出CORS错误。得到这样的错误 访问位于“”的XMLHttpRequesthttps://example.com/api“起源”http://localhost:49168'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origi

  • 问题内容: 从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我是一个长期从事C / Java开发人员的工作,试图涉足Python,并且正在寻找陈词滥调的“面向C 开发人员的Python”文章,但是空白。我已经看到了C

  • 我的SimpleCorsFilter如下所示: 机智的邮递员它工作正常: 邮递员得到请求 restlet.com/blog/2016/09/27/how-to-fix-cors-problems/ 并调查了StackOverflow上发布的几个类似问题。