http发布错误:未捕获的TypeError:'来电者'和'论证'是受限制的函数属性,在此上下文中无法访问

时间:2017-02-24 10:47:05

标签: angular

我尝试使用以下方法在角度2中执行POST:

let headers = new Headers({'Content-Type': 'application/json'}) ;
let options = new RequestOptions({ headers: headers });
this._http.post(this._healthFromControllerJsonPostUrl + "/MyAction", JSON.stringify("asdf"), options);

我正在使用es6

"module": "es6"

我收到此错误

this._http.__proto__.post.arguments:
    Uncaught TypeError: 'caller' and 'arguments' are restricted function properties and cannot be accessed in this context.
        at eval (eval at evaluate (:85:21), <anonymous>:1:26)

我已验证我的网址是否正确。我找到了一些文章,这是因为es6和严格模式。

  • 在这种情况下,我应该禁用严格模式吗?
  • 我该如何解决这个错误?

1 个答案:

答案 0 :(得分:0)

尝试类似这样的事情:

import {Headers, Http} from '@angular/http';
import 'rxjs/add/operator/toPromise';

@Injectable()
export class myServiceClass {

private headers = new Headers({'Content-Type': 'application/json'});
constructor(private http: Http) {};

this.http
      .post(this._healthFromControllerJsonPostUrl, JSON.stringify('asdf'), {headers: this.headers})
      .toPromise()
      .then(response => response.json().data)
      .catch(this.handleError);

private handleError(error: any): Promise<any> {
    return Promise.reject(error.message || error);
  }
}

由于我没有看到你的完整组件,我真的不知道你的问题是否与你如何调用,你如何实例或你使用依赖关系...所以我决定发布一个简单的例子希望这可以帮助您,如果没有,请不要犹豫,提供更多信息,以便我们找出问题的根源。

希望它有所帮助! ;)