Quiero enviar un POST petición remota a un archivo php desde un iónica de la aplicación para guardar los datos con codificación base64 en la base de datos. Cuando me pase POST de datos, puedo ver que el post parámetro se envía, pero cuando voy a imprimir la respuesta desde el archivo php, está en blanco.

He probado este código:

controller.js

$http.post("someurl", {data: {"data333": 'peter'}});

Cuando puedo imprimir $_POST o $_REQUEST de php, es un espacio en blanco de la matriz, pero desde mi consola puedo ver que los parámetros se pasan con el json {data: {"data333": 'peter'}}.

Me han permitido cruz de dominio en ambos cliente y servidor.

También probé el estándar manera de ajax:

$http.defaults.headers.post["Content-Type"] = 'application/x-www-form-urlencoded; charset=UTF-8';
$http({
        method : 'POST',
        url : 'someurl/',
        headers: {
            'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
        }, 
data : {"key": "value"}
})

Alguien me puede ayudar pasar los datos?

InformationsquelleAutor Hussain | 2015-07-25

5 Comentarios

  1. 6

    Objeto de usuario para pasar los datos al servidor. La esperanza es ayudar a que

    myobject = { email: user.email,password:user.password };        
    Object.toparams = function ObjecttoParams(obj) 
    {
      var p = [];
      for (var key in obj) 
      {
        p.push(key + '=' + encodeURIComponent(obj[key]));
      }
      return p.join('&');
    };
    
    var req = 
    {
        method: 'POST',
        url: "API-CALLING-URL",
        data: Object.toparams(myobject),
        headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }
    
    $http(req).
    success(function(data, status, headers, config) 
    {
        //success
    }).
    error(function(data, status, headers, config) 
    {
        //error
    });
    • esta es también una buena solución: link
    • me alegro de que sea ayudar a usted
  2. 0

    Publicado en angularjs-http-post-no-no-enviar-datos, esto podría ser un problema entre AngularJS uso de JSON y PHP esperando los datos del formulario.

    Una respuesta está del lado del servidor /PHP:

    puede utilizar:

    $params = json_decode(file_get_contents('php://input'),true);

    Para acceder a un array en PHP a partir de una AngularJS POST.

    El aceptó responder le dice a usted cómo convertir AngularJS datos a un estándar de solicitud post. Es largo. (JSON array POST de cadena, etc)

    • sigue el mismo de los que no puedo capturar los datos de entrada desde el servidor
    • Si todavía no se resuelve, usted puede intentar la edición.
    • Esto funcionó para mí. No pensé que sería conseguir JSON en lugar de un estándar de solicitud POST.
  3. 0

    Me encontré con este problema hace un tiempo . Incluyendo estos encabezados en PHP api salvó mi día.

    if (isset($_SERVER['HTTP_ORIGIN'])) {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Max-Age: 86400');    //cache for 1 day
    }
    
    //Access-Control headers are received during OPTIONS requests
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         
    
        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
    
        exit(0);
    }

    Ver los detalles de mi pregunta aquí

  4. 0

    probar esto debería funcionar, asegúrese de definir $httpParamSerializerJQLike en el controlador y eres bueno para ir,

       .controller('myCtrl', function($http, $httpParamSerializerJQLike) {
      $http({
       method: 'POST',
       url: baseUrl,
       data: $httpParamSerializerJQLike({
        "user":{
        "email":"[email protected]",
        "password":"123456"
      }
      }),
         headers:
        {'Content-Type': 'application/x-www-form-urlencoded'},

    })})

Dejar respuesta

Please enter your comment!
Please enter your name here