无法通过角度4中的http.post()发布变量

时间:2017-06-22 07:47:03

标签: javascript php angular ionic3

我在角度4中遇到问题....我正在使用离子3构建混合应用程序。

我必须使用php作为API的服务器端语言,我在将变量发布到http.post()请求时遇到问题......

变量不会传递给php文件。

我用来从home.ts调用API的方法是:

newname

我能够从API获得响应,但问题是我无法将变量'var1'的值传递给我的API 在infoarray.php我正在将请求编码为json ...但没有得到变量

5 个答案:

答案 0 :(得分:1)

  1. 检查您的PHP代码,可能是您缺少从Post发送JSON内容。

    $data = json_decode(file_get_contents('php://input'), true);
    print_r($data);
    echo $data["param"];
    
  2. 否则尝试在表单数据中添加params

    let headers      = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
    let options      = new RequestOptions({ headers: headers }); // Create a request option
    let url = "SERVER_URL";
    let body = 'param1='+value1+'&param2=' +value2;
    
    this.http.post(url, body, options)
    

答案 1 :(得分:0)

处理参数时使用JSON.stringify()方法:

var json = {var1: 'test'};

var params = 'json='+JSON.stringify(json);

答案 2 :(得分:0)

你的params = 'json='+json实际上会产生这样的结果:“json = [object Object]”。那是因为你没有首先字符串化对象,这是这样做的:

var params = 'json=' + JSON.stringify(json); // "json={"var1":"test"}"

答案 3 :(得分:0)

使用JSON.stringify()并将标头放在RequestOptions类

let headers = new Headers();
    headers.append('Content-Type', 'application/json');
let requestOpt = new RequestOptions({ headers: headers });
    const bodyStr = JSON.stringify({var: value});

this.http
    .post(this.vocabularyPostUrl, bodyStr, requestOpt)

答案 4 :(得分:0)

您必须对对象进行字符串化。否则,您将收到"[object][object]"而不是"{var1: 'test'}"

JSON.stringify(json);