标签: angular2-http

Angular2在获取资源时监视302重定向

我需要从我公司持有的另一个域中提取一些资源.我想用GET请求提取安全的HTML内容.

当用户退出应用程序时,所请求的内容将返回302到登录页面.

我试图嗅探302的标题并没有返回到目前为止我所希望的.我的Observable返回的响应是200(登录页面).

这是我的示例应用程序.

export class MenuComponent implements OnInit {

    private _resourceUrl = "http://localhost:3001/resources/menu";

    constructor(private _http: Http){
    }

    menu: string;

    ngOnInit(): void {
        this.getMenu()
            .subscribe(
                response => {
                    console.log(`Response status: ${response.status}`);

                    this.menu = response.text();
                },
                error => console.log(<any>error));
    }

    getMenu(): Observable<Response>{        
        return this._http.get(this._resourceUrl)
            .map((response: Response) => response)
            .catch(this.handleError);
    }

    private handleError(error: Response){
        console.log(error);
        return Observable.throw(error.json().error || 'Server Error');
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否走在正确的轨道上?

rxjs angular2-http angular

9
推荐指数
1
解决办法
1万
查看次数

Angular2 Http Response缺少标题键/值

我正在对成功的REST API进行http.patch调用(状态200),但并未返回所有响应头的键/值.我对ETag键/值很感兴趣.

这是一段代码:

let etag:number = 0;
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('If-Match', String(etag));
this.http.patch(
    'http://example.com:9002/api/myresource/',
     JSON.stringify(dto),
     {headers: headers}
)   
.subscribe(
    (response:Response) => {
        let headers:Headers = response.headers;
        let etag:String = headers.get('ETag');
        console.log(etag);
    }
);
Run Code Online (Sandbox Code Playgroud)

与REST客户端(邮递员)进行相同的调用时,响应头包含:

Content-Type: application/hal+json;charset=UTF-8
Date: Mon, 01 Feb 2016 05:21:09 GMT
ETag: "1"
Last-Modified: Mon, 01 Feb 2016 05:15:32 GMT
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
X-Application-Context: application:dev:9002
Run Code Online (Sandbox Code Playgroud)

丢失的响应标头键/值是否为错误?可以通过配置解决问题吗?

angular2-http

8
推荐指数
1
解决办法
4471
查看次数

Angular 2 Http,Observables和递归请求

我有一个REST端点,它返回一个项目列表,一次最多1000个项目.如果有超过1000个项目,则响应具有HTTP状态206,并且Next-Range我可以在下一个请求中使用标题来获取更多项目.

我正在研究一个Angular 2应用程序并试图用Http和实现它Observable.我的问题是我不知道如何合并多个Observables取决于有多少页面的项目,最后返回Observable我的组件可以订阅的一个.

这是我使用当前TypeScript实现的地方:

// NOTE: Non-working example!

getAllItems(): Observable<any[]> {
  // array of all items, possibly received with multiple requests
  const allItems: any[] = [];

  // inner function for getting a range of items
  const getRange = (range?: string) => {
    const headers: Headers = new Headers();
    if (range) {
      headers.set('Range', range);
    }

    return this.http.get('http://api/endpoint', { headers })
      .map((res: Response) => {
        // add …
Run Code Online (Sandbox Code Playgroud)

observable rxjs angular2-http angular

8
推荐指数
1
解决办法
6211
查看次数

使用ng2-file-upload将多个文件上传到不同的URL

我遇到了麻烦uploading multiple file to different urls using ng2-file-upload method.

我正在使用这个repo https://github.com/valor-software/ng2-file-upload 来实现这个目标.ng2-file-upload使用此演示轻松集成到我的应用程序中上传文件.此外,他们还提供了一种在特定网址上传多个文件的方法.

但我想上传different files at different url,我还没有找到.

// sample code
import { Component } from '@angular/core';
import { FileUploader } from 'ng2-file-upload';

const URL = '/api/some_url';

@Component({
  selector: 'simple-demo',
  templateUrl: './simple-demo.html'
})
export class SimpleDemoComponent {
  public uploader:FileUploader = new FileUploader({url: URL}); // here to add url
}
Run Code Online (Sandbox Code Playgroud)

FileUploader提供url了上传文件的方法.该方法的有用之处在于,progress-bar相关特征与该ng2-file-uploader组件集成在一起.我搜索了很多,但无法找到任何上传到不同网址的解决方案.

任何有用的建议将不胜感激!

file-upload angular2-http ng2-file-upload angular

8
推荐指数
1
解决办法
1635
查看次数

Angular 4组合来自多个HTTP请求的数据

我正在使用角度4,我尝试从2个端点获取数据,但我在理解rxjs时遇到问题.

使用此代码我只能获得学生和用户的列表.

 getStudent() {
    return this.http.get(this.url + this.student_url, this.getHeaders()).map(res => res.json());
  }

getUsers() {
    return this.http.get(this.url + this.users_url, this.getHeaders()).map(res => res.json());
  }
Run Code Online (Sandbox Code Playgroud)

让我们说这是数据:学生

[{"ID" : 1 , "SchoolCode": "A150", "UserID": 1 }, 
{"ID" : 5 , "SchoolCode": "A140" , "UserID": 3}, 
{"ID" : 9 , "SchoolCode": "C140" , "UserID": 4}]
Run Code Online (Sandbox Code Playgroud)

用户

[{"ID" : 1  ,"Name": "Rick" , "FamilyName" , "Grimes" },
{"ID" : 4 ,"Name": "Carle" , "FamilyName" , "Grimes" }]
Run Code Online (Sandbox Code Playgroud)

我想先得到所有学生,然后比较UserID,如果它与用户相同,那么我将两个对象合并为一个,直到我得到这样的数组:

{"ID" : 1 , "SchoolCode": "A150","Name": "Rick" , …
Run Code Online (Sandbox Code Playgroud)

rxjs typescript angular2-http angular

8
推荐指数
1
解决办法
3496
查看次数

如何为AngularJS 2编写http拦截器?

我想从一个地方查看我的所有http响应.例如身份验证状态.如果响应说用户没有经过身份验证,我想重定向或其他什么.有没有办法做到这一点.

angular2-http angular

7
推荐指数
1
解决办法
3104
查看次数

Angular2 rc5:没有Http的提供者

我正在尝试将一个角度2应用程序移植到RC5,但我遇到了一个问题:我无法通过模块正确设置应用程序.

有一个名为CustomersService的服务,它通过Http检索客户数据.我创建了一个导入HttpModule并提供CustomersService的应用程序模块.在另一个名为HomeModule的模块中,有一个使用该服务的组件.应用程序启动时,我在控制台上看到以下错误:

EXCEPTION: Error in ./HomeComponent class HomeComponent_Host - inline template:0:0
ORIGINAL EXCEPTION: No provider for Http!
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样......

任何建议将不胜感激.

谢谢.


这是文件:

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';

import { MdSidenavModule } from '@angular2-material/sidenav';
import { MdListModule } from '@angular2-material/list';
import { MdIconModule } from '@angular2-material/icon';
import { MdToolbarModule } from '@angular2-material/toolbar';
import { MdButtonModule } from '@angular2-material/button';

import { AppComponent } from './app.component';
import { routing } …
Run Code Online (Sandbox Code Playgroud)

angular2-http angular

7
推荐指数
1
解决办法
7404
查看次数

Angular2-对预检请求的响应未通过访问控制检查:请求的资源上没有"Access-Control-Allow-Origin"标头

我在Angular 2中调用了一个http帖子.这在post man中工作得很好但是当我在Angular 2中实现这个API调用时,我得到No'Access-Control-Allow'错误.这是我的代码

getInspections(): Observable<IInspection[]> {
        if (!this.inspections) {
            let body =JSON.stringify({"Statuses":["Submitted", "Opened"]});
            let headers = new Headers({ 'Content-Type': 'application/json' });

            headers.append('Access-Control-Allow-Origin','*');
            let options = new RequestOptions({ headers: headers });

            return this.http.post(this._baseUrl + '/api/Inspect/ListI',body,options)
                .map((res: Response) => {
                    this.inspections = res.json();
                    return this.inspections;
                })
                .catch(this.handleError);
        }
        else {
            //return cached data
            return this.createObservable(this.inspections);
        }
    }
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做吗?只需传递标题而不是选项

getInspections(): Observable<IInspection[]> {
        if (!this.inspections) {
            let body =JSON.stringify({"Statuses":["Submitted", "Opened"]});
            let headers = new Headers({ 'Content-Type': 'application/json' });

            //headers.append('Access-Control-Allow-Origin','*');
          //  let options = …
Run Code Online (Sandbox Code Playgroud)

rest cors angular2-http angular

7
推荐指数
1
解决办法
3万
查看次数

Angular 2 HTTPS请求

如何从角度2配置和发出https请求?找不到任何资源.可以请有人在这里指导我吗?谢谢.

angular2-services angular2-http angular

7
推荐指数
2
解决办法
2万
查看次数

Angular2 http响应正文出错

this.http.put(url, data)
    .map(response => response.json())
    .subscribe(
      response => console.log(response),
      error => console.log(error),
    );
Run Code Online (Sandbox Code Playgroud)

成功后,它会输出API返回的数据.出错时输出为ProgressEvent,状态为0.

发生错误时如何从API获取响应数据?

angular2-http angular

7
推荐指数
1
解决办法
5715
查看次数