我正在try 将以下Angular 1代码转换为Angular 2:

$http.jsonp('https://accounts.google.com/logout');

它需要是一个JSONP请求来跳过CORS策略问题.

推荐答案

In the latest version of Angular

  1. 在应用程序模块的定义文件中导入HttpClientModuleHttpClientJsonpModule个模块

     import {
         HttpClientModule,
         HttpClientJsonpModule
     } from '@angular/common/http';
    
     @NgModule({
     declarations: [
         //... List of components that you need.
     ],
     imports: [
         HttpClientModule,
         HttpClientJsonpModule,
         //...
     ],
     providers: [
         //...
     ],
     bootstrap: [AppComponent]
     })
    
  2. httpmap rxjs运营商注入您的服务:

     import {Injectable} from '@angular/core';
     import {HttpClient} from '@angular/http';
     import 'rxjs/add/operator/map';
    
     @Injectable()
     export class MegaSuperService {
        constructor(private _http: HttpClient) {}
     }
    
  3. 以以下方式发出JSONP请求:

     // inside your service
     this._http.jsonp('/api/get', 'callback').map(data => {
     // Do stuff.
     });
    

In Angular version 2 - version 4.3

  1. 在应用程序模块的定义文件中导入JSONP模块:

     import {JsonpModule} from '@angular/http';
    
     @NgModule({
     declarations: [
         //... List of components that you need.
     ],
     imports: [
         JsonpModule,
         //...
     ],
     providers: [
         //...
     ],
     bootstrap: [AppComponent]
     })
    
  2. 向您的服务中注入jsonp服务和map rxjs运营商:

     import {Injectable} from '@angular/core';
     import {Jsonp} from '@angular/http';
     import 'rxjs/add/operator/map';
    
     @Injectable()
     export class MegaSuperService {
        constructor(private _jsonp: Jsonp) {}
     }
    
  3. 使用"JSONP_回调"作为回调属性发出请求:

     // inside your service
     this._jsonp.get('/api/get?callback=JSONP_CALLBACK').map(data => {
     // Do stuff.
     });
    

Typescript相关问答推荐

Typescript问题和缩减器状态不会在单击时添加用途.属性'状态和调度'不存在于userContextType类型上'|null'

替换类型脚本类型中的多个特定字符串

Tailwind CSS样式不在Svelte应用程序中呈现

如何推断类方法未知返回类型并在属性中使用它

angular 17独立使用多个组件(例如两个组件)

如何在TypeScript对象迭代中根据键推断值类型?

typescribe警告,explate—deps,useEffect依赖项列表

如何使用泛型自动推断TS中的类型

无法正确推断嵌套泛型?

无法从Chrome清除还原的初始状态数据

如何将别名添加到vitest配置文件?

Typescript -返回接口中函数的类型

如何将类似数组的对象(字符串::匹配结果)转换为类型脚本中的数组?

抽象类对派生类强制不同的构造函数签名

将带有额外id属性的Rust struct 展平回TypeScript单个对象,以返回wasm-bindgen函数

如何向我的自定义样式组件声明 custom.d.ts ?

如何通过nx找到所有受影响的项目?

在对象类型的类型别名中,属性是用分号 (;) 还是逗号 (,) 分隔的?

为什么在 useState 中设置 React 组件是一种不好的做法?

错误:仅允许在‘使用服务器’文件中导出异步函数