angularJs POST данные в $ _POST для php

Я делаю почтовый запрос в php-скрипт, создающий мое приложение AngularJS. Я получил работу, просматривая ответы в Интернете, но я хотел бы получить данные в моем PHP-скрипте в переменной $_POST['jwt'] .

Вот мой код AngularJS:

 var dataReq = { method: 'POST', url: 'http://localhost/PHP/dataSender.php', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, data: { jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9' } } $http(dataReq).success(function(response,data) { console.log(response); }); 

В моем PHP у меня есть это:

 $postdata = file_get_contents("php://input"); $request = json_decode($postdata); @$jwt = $request->jwt; echo $jwt; 

И он работает, но если я изменю заголовок в своем угловом запросе на

 'Content-Type': 'application/json' 

Я получаю ошибку CORS.

Есть ли способ получить значения в переменной $_POST потому что я никогда не работал с этим file_get_contents("php://input");

Как проверить, установлены ли значения в $_POST я бы сделал что-то вроде этого:

 if(isset($_POST["jwt"]) && !empty($_POST["jwt"])) { echo $_POST["jwt"]; } 

Как я могу сделать тот же тест в этом file_get_contents("php://input");

Добавьте угловую фабрику js с методом запроса формы формы.

  'use strict'; // I provide a request-transformation method that is used to prepare the outgoing // request as a FORM post instead of a JSON packet. angularApp.factory( "transformRequestAsFormPost", function() { // I prepare the request data for the form post. function transformRequest( data, getHeaders ) { var headers = getHeaders(); headers[ "Content-type" ] = "application/x-www-form-urlencoded; charset=utf-8"; return( serializeData( data ) ); } // Return the factory value. return( transformRequest ); // --- // PRVIATE METHODS. // --- // I serialize the given Object into a key-value pair string. This // method expects an object and will default to the toString() method. // -- // NOTE: This is an atered version of the jQuery.param() method which // will serialize a data collection for Form posting. // -- // https://github.com/jquery/jquery/blob/master/src/serialize.js#L45 function serializeData( data ) { // If this is not an object, defer to native stringification. if ( ! angular.isObject( data ) ) { return( ( data == null ) ? "" : data.toString() ); } var buffer = []; // Serialize each key in the object. for ( var name in data ) { if ( ! data.hasOwnProperty( name ) ) { continue; } var value = data[ name ]; buffer.push( encodeURIComponent( name ) + "=" + encodeURIComponent( ( value == null ) ? "" : value ) ); } // Serialize the buffer and clean it up for transportation. var source = buffer .join( "&" ) .replace( /%20/g, "+" ) ; return( source ); } } ); // -------------------------------------------------- // // -------------------------------------------------- // // I override the "expected" $sanitize service to simply allow the HTML to be // output for the current demo. // -- // NOTE: Do not use this version in production!! This is for development only. angularApp.value( "$sanitize", function( html ) { return( html ); } ); 

Добавьте контроллер сохранения формы и используйте запрос формы преобразования и заголовок в файле контроллера.

  angularApp.controller('saveFormCtrl', function($scope, $http, transformRequestAsFormPost) { $http({ transformRequest: transformRequestAsFormPost, method : 'POST', url : 'save.php', data: { jwt: $scope.jwt, }, headers: { 'Content-Type': 'application/x-www-form-urlencoded', } }).success(function(res){ } });