$http.post()
рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдЕрдХреНрд╕рд░ рднреНрд░рдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ $ http рд╕реЗрд╡рд╛ (рдЬреИрд╕реЗ
$http.post()
) рдХреЗ рдлрд╛рд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕, рд╕рдорд╛рди Jquery рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдЬреИрд╕реЗ
jQuery.post()
) рдХреЗ рд╕рд╛рде рд╡рд┐рдирд┐рдореЗрдп рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдореИрдиреБрдЕрд▓ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЗрд╕ рд╕реЗ рдкрд╣рд▓реЗ Gickery рдореЗрдВ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
(function($) { jQuery.post('/endpoint', { foo: 'bar' }).success(function(response) {
рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдореНрди рдХреЛрдгреАрдп рдореЗрдВ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
var MainCtrl = function($scope, $http) { $http.post('/endpoint', { foo: 'bar' }).success(function(response) {
рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЛрдгреАрдп рдЕрдиреБрд░реЛрдз рд╕реЗ
{ foo: 'bar' }
рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЬрд┐рдХрд░реА рдФрд░ рдХреЛрдгреАрдп рдХреНрд░рдордмрджреНрдз рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЕрд╕рд▓ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдЙрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рднрд╛рдЧ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬреЛ рдмрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХреЛрдгреАрдп рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рд╣реИ - рд▓рд╛рдирдд рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЛрдгреАрдп, рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Gickery
Content-Type: x-www-form-urlencoded
рдФрд░ рдкрд░рд┐рдЪрд┐рдд рдкрдВрдХреНрддрд┐
foo=bar&baz=moe
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЛрдгреАрдп, рд╣рд╛рд▓рд╛рдВрдХрд┐,
Content-Type: application/json
рдФрд░
{ "foo": "bar", "baz": "moe" }
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
Content-Type: application/json
JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЬреЛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рд╕рд░реНрд╡рд░ рднрд╛рд╖рд╛рдУрдВ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ PHP - рд╢реБрд░реВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рд╡рд╕реНрддреБ рдореЗрдВ рдмрджрд▓рдирд╛ред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Angular Developers рдиреЗ рд╣рдорд╛рд░реЗ рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП
x-www-form-urlencoded
рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $ http рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ред рдлрд╝реЛрд░рдо рдФрд░ рд╕реНрдЯреИрдХрдСрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рдХрдИ рд╕рдорд╛рдзрд╛рди рдкреЗрд╢ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдХреЛрдб рдпрд╛ $ http рдиреАрддрд┐ рдпреЛрдЬрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ $ http рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдХреБрдЫ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ:
рдиреЛрдЯ: рдКрдкрд░ рджрд┐рдП рдЧрдП рдмрдбрд╝реЗ рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рд╣рдореЗрд╢рд╛ param()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп jQuery.param()
рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдЬрдм рдЖрдк jQuery.param()
рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП $ рд╕рдВрд╕рд╛рдзрди рд╡рд░реНрдЧ рдХреЗ рд╣рд░ рддрд░реАрдХреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдВрдЧреЗ, рддреЛ рдЖрдк рдХреЛрдгреАрдп рдХреЗ $ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЕрд░рд╛рдЬрдХрддрд╛ рдкреИрджрд╛ рд╣реЛрдЧреА! (рдпрд╣ jQuery рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рди рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдВрдЧреБрд▓рд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЖрдорддреМрд░ рдкрд░ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдЯреА рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред .Dред)
рдмрд╕ рдКрдкрд░ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛!рдЕрдм рд╣рдо
$http.post()
рдФрд░ рдЕрдиреНрдп рд╕рдорд╛рди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдореМрдЬреВрджрд╛ рд╕рд░реНрд╡рд░ рдХреЛрдб
x-www-form-urlencoded
рдбреЗрдЯрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рд╣рд░ рд░реЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдкреВрд░рд╛ рдХреЛрдб (рдЖрдк рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдкрдиреЗ рджреЗрдЦрддреЗ рд╣реИрдВ) рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
HTML рдЯреЗрдореНрдкрд▓реЗрдЯ <div ng-app="MyModule" ng-controller="MainCtrl"> <p ng-show="loading">Loading...</p> <p ng-hide="loading">Response: {{response}}</p> </div>
рдЧреНрд░рд╛рд╣рдХ рдХреЛрдб (AngularJS) var MainCtrl = function($scope, $http) { $scope.loading = true; $http.post('/endpoint', { foo: 'bar' }).success(function(response) { $scope.response = response; $scope.loading = false; }); };
рд╕рд░реНрд╡рд░ рдХреЛрдб (PHP) < ? header('Content-Type: application/json');
рдЕрдиреНрдп рдиреЛрдЯрд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЕрдм рднреА PHP рдореЗрдВ Angular's JSON рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдареАрдХ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрджрд┐ рдЖрдк PHP рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ JSON рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рддреЗ рд╣реИрдВ:
< ? $params = json_decode(file_get_contents('php://input'));
рд╕реНрдкрд╖реНрдЯ рджреЛрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рдереЛрдбрд╝рд╛ рдХрдо рд╕рд╣рдЬ рд╣реИ (рд╣рдо рд╕рднреА рдХреЗ рдмрд╛рдж $ _POST рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ), рдФрд░ рдпрджрд┐ рд╕рд░реНрд╡рд░ рд╣реИрдВрдбрд▓рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА $ _POST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдЪреНрдЫреА рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдВрднрд╡рддрдГ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЗрдирдкреБрдЯ рд╣реИрдВрдбрд▓рд░ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ JSON рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВред
рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, Content-Type: application/json
рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЬреЛ рдЕрдзрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рдЖрд▓реЗрдЦ рдЪрд░рдо рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредAdditiveред рдирд░реНрд╡ рд╕реЗ
рд╕рдкреНрд▓реАрдореЗрдВрдЯ 'use strict'; (function() { angular.extend( angular, { toParam: toParam }); function toParam( object, prefix ) { var stack = []; var value; var key; for( key in object ) { value = object[ key ]; key = prefix ? prefix + '[' + key + ']' : key; if ( value === null ) { value = encodeURIComponent( key ) + '='; } else if ( typeof( value ) !== 'object' ) { value = encodeURIComponent( key ) + '=' + encodeURIComponent( value ); } else { value = toParam( value, key ); } stack.push( value ); } return stack.join( '&' ); } }());
'use strict';