繁体   English   中英

Ionic 2 - Angular 2 http Headers不随请求一起发送

[英]Ionic 2 - Angular 2 http Headers are not being sent along with the request

我正在使用Ionic的最新测试版,我已经为我的api服务器做了一个http post方法。 但是标题不会随请求一起发送。 我使用的代码如下:**离子版 - Beta-8和Angular版-rc.3

import {Page,App,NavParams} from 'ionic-angular';
import {Headers, Http, RequestOptions} from '@angular/http';
import {Component} from '@angular/core';
import 'rxjs/add/operator/map';

@Component({
    templateUrl : 'build/pages/xyz/xyz.html'
})

export class Xyz{

    form:any;
    token:any;
    constructor(public app:App, navParams:NavParams, public http:Http){

        let code = {abc : 'abc'};
        let headers = new Headers();
        let body = JSON.stringify(code);
        headers.append('Content-Type', 'application/json');
        headers.append('Authorization', 'Bearer ' + "tokenContent");
        let options =new RequestOptions({headers : headers, body:body});
        this.http.post('http://myserver/myapi', options)
            .map(res => res.json())
            .subscribe(
                data=>{
                    console.log(data.message);
                },
                err=>{
                    console.log(err);
                },
                ()=>{
                    console.log("Process Complete");
                }
            );

当我查看console.log选项对象和标题时,标题设置正确。 但是当我发出http请求时,当我将它们包含在options对象中时,不会发送标题和正文。 但是当我尝试单独发送身体时,我能够在请求有效载荷中看到它。

这应该适合你,因为http.post的第二个参数是正文:

headers.append('Content-Type', 'application/json');
headers.append('Authorization', 'Bearer ' + "tokenContent");
let options = new RequestOptions({ headers: headers });

this.http.post('http://myserver/myapi', body, options)
    .map(...

如果您从浏览器进行测试,则无效。请查看与文档相关的CORS请求。

http://blog.ionic.io/handling-cors-issues-in-ionic/

首先,检查此问题是否适用于CORS。

另外,请尝试以下代码:

let headers = new Headers();
headers.append('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
this.http.post(`${this.link}`,'sRequest=' + sRequest1,{ headers: headers });

暂无
暂无

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

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