angular 2 http post方法JSON输入意外结束

时间:2017-06-14 14:00:27

标签: angular2-services

public deptpostdbServer() {
    let headers = new Headers();
    headers.append('application/x-www-form-urlencoded', 'Content-Type');
    headers.append('Access-Control-Allow-Methods', 'POST');
    headers.append('Access-Control-Allow-Origin', '*');

    return this.http
    .post('http://172.16.0.125:8090/buyR/api/saveDeptInfo/150/Software', headers)
    .map(res => res.json());

    public datapostDisplay() {
        this.deptpost = [];     
        this.sitehttpservice.deptpostdbServer().subscribe((res) => {
        this.deptpost.push(res);
    });

   ERROR SyntaxError: Unexpected end of JSON input
   at JSON.parse (<anonymous>)
   at Response.Body.json (body.ts:36)
   at MapSubscriber.eval [as project] (table.service.ts:77)
   at MapSubscriber._next (map.ts:75)
   at MapSubscriber.Subscriber.next (Subscriber.ts:95)
   at XMLHttpRequest.onLoad (xhr_backend.ts:104)
   at ZoneDelegate.invokeTask (zone.js:424)
   at Object.onInvokeTask (ng_zone.ts:253)
   at ZoneDelegate.invokeTask (zone.js:423)
   at Zone.runTask (zone.js:191)
   defaultErrorLogger @ errors.ts:42
  ErrorHandler.handleError @ error_handler.ts:69

   Post service 
     <div class="form-group" >
        First: <input type="text" [(ngModel)]="data.DeptCd" 
        placeholder="text"/>
        Last: <input type="text" [(ngModel)]="data.Desc" 
         placeholder="name"/>
        <button (click)="datapostDisplay()">Save</button>

    </div>

angular2 post service是json解析错误。我通过了正确的参数。我可以使用API​​从数据库中获取。从方法我可以使用文本框中的帖子调用API我无法发送post方法我得到json解析错误。

1 个答案:

答案 0 :(得分:0)

在您的帖子请求中,我看到了您的标题,但没有看到任何“参数”。您实际上是在发送一个空的帖子请求。只需在请求中添加2个字段值,除非远程服务器脚本中存在其他错误,否则应解决错误。您的帖子请求应如下所示:

    let headers = new Headers({ 'Content-Type': 'application/json' });
    let data = { postFieldName : postValue, postFieldName2 : postValue2 };
    let params = JSON.stringify(data);

    return this.http.post(URL, params, headers)
              .map(this.extractData)
              .catch(this.handleError);

然后,您创建一个将处理您的http响应的extractData方法。如果错误仍然存​​在,可能会在发出发布请求之前检查您的数据是否未定义。

Check out documentation located here ›