Angular 角度2 http POST请求

Angular 角度2 http POST请求,angular,http-post,Angular,Http Post,我是Angular 2的新手,目前我正在尝试编写一个小型web应用程序,我有点被卡住了。我需要做一个post请求,我有以下Python代码(我在这里替换了参数,但它工作得非常好): 我想对Angular 2做同样的事情,但出于某种原因,Angular 2代码不起作用: import {Component, enableProdMode, Injectable, OnInit} from '@angular/core'; import {Http, Headers, HTTP_PROVIDERS,

我是Angular 2的新手,目前我正在尝试编写一个小型web应用程序,我有点被卡住了。我需要做一个post请求,我有以下Python代码(我在这里替换了参数,但它工作得非常好):

我想对Angular 2做同样的事情,但出于某种原因,Angular 2代码不起作用:

import {Component, enableProdMode, Injectable, OnInit} from '@angular/core';
import {Http, Headers, HTTP_PROVIDERS, URLSearchParams} from '@angular/http';
import "rxjs/add/operator/map";
@Injectable()
class HTTPService{

    constructor (private http: Http) {}

    test(){ 
        var params = JSON.stringify({ var1: { var1Text: 'parameter' } });

        var headers = new Headers(); 
        headers.append('Authorization','Basic somethingsomethinghidden');
        headers.append('X-SyncTimeout','30');
        headers.append('Accept','application/json');
        headers.append('Cache-Control','no-cache');
        headers.append('Content-Type','application/json');
        return this.http.post('https://somerandomlink.wasd',params,{headers: headers})

    }
}
@Component({
    selector: 'home',
    templateUrl: 'app/html/some.component.html',
    providers: [HTTP_PROVIDERS, HTTPService]
})
export class someComponent {
    question = '';
    view_question = '';
    view_answer = '';


    constructor(private httpService: HTTPService){}


    eventHandler(key) {
        if (key==13){
            this.view_question = this.question;
            this.reqAns(this.question);
            this.question = '';
        }
    } 

    reqAns(question){
        if (question == ''){ 
            return ''
        }else{
            this.httpService.test().map(res => res.json()).subscribe(
                data => this.view_answer = "DATA block: " + JSON.stringify(data),
                error => this.view_answer = "ERROR block: " + JSON.stringify(error),
                () => console.log('finished')
            );

        }
    }

}
它产生以下输出:

ERROR block: {"_body":{"isTrusted":true},"status":200,"ok":true,"statusText":"Ok","headers":{},"type":3,"url":null}
如果有人能帮助我,我将不胜感激。不应该有语法错误,因为我已经尝试了另一个基于视频教程的post请求(一个更简单的,带有urlencoded表单),并且成功了。所以问题一定是别的,虽然我不知道是什么


其他信息:

信息A:

如我所述,以下方法基于视频教程工作并产生预期输出:

postJSON_tutorial(){
    var json = JSON.stringify({var1: 'test', var2: 3, var3: "asdas"});
    var params = 'json=' + json;
    var headers = new Headers();
    headers.append('Content-Type','application/x-www-form-urlencoded');
    return this.http.post('http://validate.jsontest.com',params,{headers: headers})
}
具有以下正确的输出

DATA block: {"object_or_array":"object","empty":false,"parse_time_nanoseconds":116419,"validate":true,"size":3}
信息B:

由于有人要求提供该版本,下面是整个package.json

{
  "name": "webapp",
  "version": "1.0.0",
  "scripts": {
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common":  "2.0.0-rc.1",
    "@angular/compiler":  "2.0.0-rc.1",
    "@angular/core":  "2.0.0-rc.1",
    "@angular/http":  "2.0.0-rc.1",
    "@angular/platform-browser":  "2.0.0-rc.1",
    "@angular/platform-browser-dynamic":  "2.0.0-rc.1",
    "@angular/router":  "2.0.0-rc.1",
    "@angular/router-deprecated":  "2.0.0-rc.1",
    "@angular/upgrade":  "2.0.0-rc.1",
    "systemjs": "0.19.27",
    "core-js": "^2.4.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "^0.6.12",
    "angular2-in-memory-web-api": "0.0.9",
    "bootstrap": "^3.3.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings":"^0.8.1"
  }
}

您使用哪一版本的Angular2?您看到dev工具的network选项卡中交换的内容了吗?谢谢你犯了什么错误?看也可以帮你
{
  "name": "webapp",
  "version": "1.0.0",
  "scripts": {
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common":  "2.0.0-rc.1",
    "@angular/compiler":  "2.0.0-rc.1",
    "@angular/core":  "2.0.0-rc.1",
    "@angular/http":  "2.0.0-rc.1",
    "@angular/platform-browser":  "2.0.0-rc.1",
    "@angular/platform-browser-dynamic":  "2.0.0-rc.1",
    "@angular/router":  "2.0.0-rc.1",
    "@angular/router-deprecated":  "2.0.0-rc.1",
    "@angular/upgrade":  "2.0.0-rc.1",
    "systemjs": "0.19.27",
    "core-js": "^2.4.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "^0.6.12",
    "angular2-in-memory-web-api": "0.0.9",
    "bootstrap": "^3.3.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings":"^0.8.1"
  }
}