SORU
18 Mart 2013, PAZARTESİ


PHP ve tanımsız için açısal HTTP post

Etiketi ng-submit="login() ile bir form var

İşlevi javascript ince çağrılır.

function LoginForm($scope, $http)
{
    $http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

    $scope.email    = "fsdg@sdf.com";
    $scope.password = "1234";

    $scope.login = function()
    {
        data = {
            'email' : $scope.email,
            'password' : $scope.password
        };

        $http.post('resources/curl.php', data)
        .success(function(data, status, headers, config)
        {
            console.log(status   ' - '   data);
        })
        .error(function(data, status, headers, config)
        {
            console.log('error');
        });
    }
}

PHP dosyasından geri 200 OK yanıt alıyorum, ancak, döndürülen verileri email password tanımsız olduğunu söylüyor. Bu Sahip olduğum tüm php

<?php
$email = $_POST['email'];
$pass  = $_POST['password'];
echo $email;
?>

POST tanımsız değerler alıyorum neden herhangi bir fikir?

CEVAP
18 Mart 2013, PAZARTESİ


.post() varsayılanları application/json İçerik türü Başlığı angularjs. Bu form ile kodlanmış veri, ancak data değeri uygun bir sorgu dizesi geçmek değiştirmiyorsunuz geçirmek için geçersiz kılma, PHP beklediğiniz gibi $_POST doldurma değildir.

Benim önerim sadece application/json angularjs varsayılan ayar olarak başlık kullanımı, PHP çiğ girdi okuyun ve JSON serisini olacaktır.

Bu gibi PHP ile elde edilebilir:

$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$email = $request->email;
$pass = $request->password;

Eğer ağır $_POST işlevsellik kalınır alternatif olarak, email=someemail@email.com&password=somepassword gibi bir sorgu dizesi form ve veri olarak gönderebilirsiniz. Bu sorgu dizesi URL kodlanmış olduğundan emin olun. Eğer elle jQuery.serialize() gibi bir şey kullanarak karşıt olarak) yerleşik, Javascript encodeURIComponent() sizin için hile yapmak gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • Kupa World

    Kupa World

    1 EYLÜL 2011
  • super1988guy

    super1988guy

    9 Aralık 2007