【发布时间】:2015-12-23 15:57:33
【问题描述】:
我的客户端应用程序将 json 对象发送到 php 中的服务器。
客户端代码:
var jacc = JSON.stringify(acc);console.log(acc);
$http.post($rootScope.url+'signup.php',jacc)
.then(function(response){console.log(response.data);});
效果很好。
但是在服务器端
$acc = $_POST["jacc"];
$code = $_POST["code"];//received later
if($acc){
echo 1;//this thing never echoed.
}
elseif ($code && matchCode($code)){
if(addAcc($acc))
echo 1;
}
else echo 0 ." failed";
die();
控制台的输出将始终为“0 failed”。尝试将发布请求更改为 httpbin.org/post 效果很好。所以问题出在我的php脚本上。还尝试了var_dump($_POST),它也返回空值。
【问题讨论】:
-
你有 2 个回声?回声 0?还有 elseif 而不是 else if?
-
是的,我确实有 2 个回声。但程序控制根本没有进入那个循环。我总是得到最后一个回声作为输出。并且我的 elseif 没有解析错误。
-
我猜你发布了一个字符串。但是你需要发布一个带有 key:value 的对象。我们可以看到
console.log(jacc)吗? -
@NemanjaT
elseif非常好,根据PHP manual 和PSR-2 Coding Style Guide。 -
我的elseif不好,我想我已经有一段时间没有使用或看到它了,所以我忘记了。不应该去
$http.post({ url: $rootScope.url+'signup.php', data: jacc })...吗?或$http.post($rootScope.url+'signup.php', { jacc: jacc })...,来自docs.angularjs.org/api/ng/service/$http的参考
标签: javascript php angularjs ionic-framework ionic