首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular2 Http协议可能无法正确发布

Angular2 Http协议可能无法正确发布
EN

Stack Overflow用户
提问于 2016-12-14 01:16:01
回答 1查看 130关注 0票数 1

这是我的http代码:

代码语言:javascript
复制
    let headers = new Headers ({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    if (body == null)
    {   
        body = {title: "hi", search: "person"};
    }   
    console.log('body: ' + JSON.stringify(body));

    return this.http.post('app/php/check.php', body, options)
        .toPromise()
        .then(response => response.text())
        .catch(this.handleError);

我不确定服务器是否正确地接收了数据,但我确信它发布了一些内容,正如我所看到的:

代码语言:javascript
复制
[
  {
    "select": "title",
    "search": "person"
  }
]

带着火虫。

在我的php文件中,我所做的只是print_r($_REQUEST),但是它返回的只是一个空数组。

我做错什么了吗?

额外的问题:除了.json().text()之外,还有其他数据提取功能用于响应吗?

更新:

有趣的是,如果我使用url app/php/check.php?fruit=apple,就会有一个响应。有人知道这个差异吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-14 01:59:16

服务器应该正在接收您的body变量中的数据。

下面是一个如何从函数中检索输出的示例。由于post数据使用的测试API,示例使用了JSON输出。字符串将是相同的,只需更改返回部分。

代码语言:javascript
复制
ngOnInit() {
      this.postRquest().then(results => this.response = results);
}

postRquest(body) {
    let headers = new Headers ({ 'Content-Type': 'application/x-www-form-urlencoded' }); 
    let options = new RequestOptions({ headers: headers }); 
    if (body == null)
    {   
        body = {title: "hi", search: "person"};
    }   
    console.log('body: ' + JSON.stringify(body));

    return this.http.post('app/php/check.php', body, options)
        .toPromise()
        .then((response) => return response.json())
        .catch(error => {
          console.log( error );
        });
  }

确保您的内容类型标头为application/x-www-form-urlencoded

柱塞例子:https://embed.plnkr.co/UDYDp0gXx5H9OhmMKicL/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41133241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档