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

  • Friday NightFort

    Friday Night

    15 EYLÜL 2011
  • jocc talking shit

    jocc talking

    6 NİSAN 2007
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012