не получается отправить JSON данные
доделал скрипт калькулятора и теперь не могу отправить данные из него рнр скрипту
$scope.submit = function(isValid) { if (isValid) { $http.post($scope.url, {"name": $scope.name, "email": $scope.email, "message": $scope.message }). success(function(data, status) { console.log(data); $scope.status = status; $scope.data = data; $scope.result = data; }) }else{ alert('Form is not valid'); } } при нажатии на кнопку submit браузер отображает вот это - как будто я посылаю пустую посылку Код:
ParameterBag {#211 ▼ |
А ты уверен что $scope.name /email/message не пустые? Не вижу других причин.
Кроме того на бэкэнде могут быть проблемы с парсингом запроса, т.к. по дефолту бэк настроен на получение данных в формате querystring. Angular шлет в формате json |
не должны быть пустыми, хотя бы потому что они required и без них форма не отправляется
вот еще выдержки из кода <form method="POST" action="page.html" class="calc" name="calculator" ng-app="Calc" ng-controller="CalcController"> <input id="name" name="name" ng-model="name" type="text" required> <label for="name">Ваше имя *</label> <input id="phone" name="tel" ng-model="tel" type="text" required> <label for="phone">Номер телефона *</label> <input id="email" name="email" ng-model="email" type="email" required> <label for="email">Адрес электронной почты *</label> <textarea id="message" name="message" ng-model="message"></textarea> <label for="message">Комментарии</label> </form> angular .module('Calc',[]) .controller('CalcController', function($scope, $http) { $scope.outerScope = {}; $scope.data = {}; $scope.url = 'page.html'; $scope.submit = function(isValid) { if (isValid) { $http.post($scope.url, {"name": $scope.name, "email": $scope.email, "message": $scope.message }). success(function(data, status) { console.log(data); $scope.status = status; $scope.data = data; $scope.result = data; }) }else{ alert('Form is not valid'); } } }); |
только что попробовал проверить вот так
$http.post($scope.url, {"name": "$scope.name", "email": "$scope.email", "message": "$scope.message" }) и всё равно получил такой же результат |
Причин может быть много, и скорее всего все яйца выеденного не стоят - кэш браузера, тупо не передаются значения, $scope не доступен там откуда ты его пытаешься взять и пр.
Научись пользоваться отладчиком - f12, встань на то место где формируется запрос, проверь что все ок. |
вот я попробовал в консоли посмотреть содержимое POST запроса
Странным показалось то, что в скрипте я пытаюсь передать вот эти вещи $scope.name, $scope.email, $scope.message. А на сервер вместо них отправляются значения всех полей, которые имеют тег name. Но мыслей по решению проблемы это мне никаких не прибавило. Content-Type: multipart/form-data; boundary=---------------------------11951679631998 Content-Length: 1023 -----------------------------11951679631998 Content-Disposition: form-data; name="_token" e5BHE37nNgme9AXpdpt1o61AgIElB5liPipWqYlL -----------------------------11951679631998 Content-Disposition: form-data; name="calc" saunadoor -----------------------------11951679631998 Content-Disposition: form-data; name="radio" Стандартный -----------------------------11951679631998 Content-Disposition: form-data; name="glass" object:3 -----------------------------11951679631998 Content-Disposition: form-data; name="korobka" object:8 -----------------------------11951679631998 Content-Disposition: form-data; name="name" Ð˜Ð»ÑŒÑ -----------------------------11951679631998 Content-Disposition: form-data; name="tel" 1234567 -----------------------------11951679631998 Content-Disposition: form-data; name="email" 123@mail.ru -----------------------------11951679631998 Content-Disposition: form-data; name="message" -----------------------------11951679631998-- |
Делай тестовый пример
|
это как?
насколько я понимаю в онлайн сервисах типа jsfiddle воспроизвести отправку данных на сервер не получится |
Получится, просто запрос не уйдет. Но то что нам требуется покажет
|
|
Часовой пояс GMT +3, время: 12:34. |