繁体   English   中英

Angular 6 无法使用代理从外部服务器 API 获取数据

Angular 6 Unable to get data from external server API using proxy

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用本地 angular 应用程序,但在从外部服务器上的 API 获取数据时遇到问题。 我尝试使用代理,所以我创建了文件proxyconfig.json并通过以下方式将它包含在命令行中

ng serve --proxy-config proxyconfig.json

这是内容:

{
    "/api/*": {
    "target": "https://bittrex.com/api/v1.1/public/",
        "secure": false,
        "pathRewrite": {
            "^/api": ""
        },
        "changeOrigin": true
    }
}

我需要传递变量,所以我创建了服务OrderBookService

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { OrderBook } from './order-book.model';


@Injectable({
    providedIn: 'root',
  })
export class OrderBookService {
    constructor(private httpClient: HttpClient) {

    }
    getOrderBookBittrex(currency1: string, currency2: string): Observable<OrderBook[]> {
        const url = `http://localhost:4200/api/getorderbook?market=${currency1}-${currency2}&type=both`;
        return this.httpClient.get<OrderBook[]>(url);
    }
}

问题是当我想获取这些数据并将其保存到我的组件中的变量时,路径没有正确转换:它正在向http://localhost:4200/api/getorderbook?market=BTC-LTC&type=both发送请求而不是https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-LTC&type=both

  private getTransfers(): void {
    const currency1 = 'BTC';
    const currency2 = 'LTC';
    this.orderBookService.getOrderBookBittrex(currency1, currency2)
      .subscribe(orders => {
        this.orderBook = orders;
      });
  }

这是控制台日志

有谁知道如何正确地做到这一点?

当我像这样将所有路径放入 proxconfig.json 时,它工作正常:

{
    "/api/*": {
        "target": "https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-LTC&type=both",
        "secure": false,
        "pathRewrite": {
            "^/api": ""
        },
        "changeOrigin": true
    }
}

但我需要传递变量。

1 个回复

你编码

getOrderBookBittrex(currency1: string, currency2: string): Observable<OrderBook[]> {
    const url = `http://localhost:4200/api/getorderbook?market=${currency1}-${currency2}&type=both`;
    return this.httpClient.get<OrderBook[]>(url);
}

只需更改网址即可

getOrderBookBittrex(currency1: string, currency2: string): Observable<OrderBook[]> {
    const url = `/api/getorderbook?market=${currency1}-${currency2}&type=both`;
    return this.httpClient.get<OrderBook[]>(url);
}

您不需要在代码中使用http://localhost:4200

"pathRewrite": { "^/api": "" },不需要太多

2 Angular无法从服务器获取数据

我使用的是最新的角度,导入和其他角度的东西都是正常的。 我有这样的代码: 其中localhost:5000/getData返回json中的数据。 角度在http://localhost:4200/ ,它有自己的路由器。 数据正确,但是我无法在subscribe()方法之外使用thi ...

3 使用Angular从服务器获取数据

在我的UI中,我有两个选项卡“专辑”和“曲目”,其中每个选项卡都显示一些记录列表,具体取决于您单击的那个。 我的问题是,使用Angular.JS从服务器检索数据的最佳方法是什么,目前我所做的是,一旦页面加载,我调用URL:channels / 1响应通道obj与相关的数据通道和所有专辑的对 ...

6 Angular 服务无法使用外部 API

我正在尝试从 Angular 9 应用程序使用外部 API ( http://developer.perfectgym.com/api/memberships/memberships/ )。 我创建了一个服务类( perfectgym.service.ts )如下(简化): 然后我将它用于我的 ...

2020-04-05 19:10:36 2 439   angular
8 Phonegap:无法从外部php服务器获取数据

我已经有问题了两天了。 在我没有面对这个问题之前,但是现在它让我很头疼。 我无法使用phonegap(最新版本)中的jQuery get方法从外部php服务器获取json数据。 这是我的数据和代码: 我得到了结果,但没有“测试”数据,但完全不同。 警报是一个html页面, ...

9 代理代码/应用程序,使用Java Spring从另一台服务器获取API数据

我必须从响应为JSON文件的API获取数据,但是API服务器不允许客户端访问,因此我必须以JAVA顺序创建代理代码,以便JAVA Spring从API服务器获取数据并返回响应,我在c#中做到了: 和配置 它工作得很好,但是,现在我必须用JAVA重写它,您能帮我制作一个能够做到这一点的应用程序 ...

10 无法在 React 中从我的 API 服务器获取数据

我尝试从我的服务器https://www.my-site.com/api获取数据(文件夹中的文件列表),其中我有index.php文件 在我的 React 应用程序中,我尝试使用fetch 但结果是CORS request did not succeed并且CORS header 'Acce ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM