我尝试使用POST方法将数据从我的登录表单发送到PHP后端写入。
我的Angular代码如下:
if((isset($_POST['login']) AND isset($_POST['password'])))
{
$username = $_POST['login'];
$password = $_POST['password'];
echo $username;
}
else
var_dump($_POST);
然后我尝试在我的PHP上捕获它:
<% form_for @user :url => {:action => "attempt_login"}, do |f| %>
此语句始终转到else并返回空数组。 有人可以告诉我我做错了什么或如何调试这个? 因为它看起来我正确地从角度发送数据,但它没有来到服务器。
由于 亲切的问候 Andurit
答案 0 :(得分:3)
使用此:
json_decode(file_get_contents('php://input'));
检查开发人员栏中的网络标签。您可以看到您在http正文中发送了有效负载数据。这就是$ _POST数组为空的原因。
答案 1 :(得分:2)
一些旧的服务器端Web库(如Coldfusion / .NET / PHP)在默认情况下抓取POST BODY时遇到问题(这是$http
发送数据的方式)。
您可以参考How to get body of a POST in php?来了解如何编写PHP,使其接受通过帖子发送数据的当前和正确标准。
访问POST或PUT请求(或任何其他HTTP)的实体主体 法):
$entityBody = file_get_contents('php://input');
此外,STDIN常量是php://输入的已打开流,所以 你也可以这样做:
$entityBody = stream_get_contents(STDIN);
答案 2 :(得分:0)
尝试:
data: { login : $scope.login, password : $scope.password }
答案 3 :(得分:0)
$http.post('url', {login: 'Alex', password: 'qwerty'}).then(function(){},function(){});