我在角度4中遇到问题....我正在使用离子3构建混合应用程序。
我必须使用php作为API的服务器端语言,我在将变量发布到http.post()请求时遇到问题......
变量不会传递给php文件。
我用来从home.ts调用API的方法是:
newname
我能够从API获得响应,但问题是我无法将变量'var1'的值传递给我的API 在infoarray.php我正在将请求编码为json ...但没有得到变量
答案 0 :(得分:1)
检查您的PHP代码,可能是您缺少从Post发送JSON内容。
$data = json_decode(file_get_contents('php://input'), true);
print_r($data);
echo $data["param"];
否则尝试在表单数据中添加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+'¶m2=' +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);