Quber
@Quber
PHP Team lead

Почему AngularJS отправляет невалидный JSON на сервер?

В проекте использую AngularJS.
Вопрос 1. Делаю запрос вида:

$scope.user.id = 31;
$scope.user.name = "Vladimir";

$http.post(url, $scope.user);

Далее Angular отправляет Json на сервер следующего вида:

{ id:31, name="Vladimir" }

Разумеется Json не проходит валидацию на стороне сервера и выдаёт ошибку клиенту. Ведь правильно было бы так:

{ "id":31,"name"="Vladimir" }

Здесь помогает следующий способ:

$http.post(url, angular.toJson($scope.user));

В таком случае запрос отправляет валидный Json.
Но разве Angular не должен сам из коробки сериализовать данные перед отправкой на сервер?

==========================================

Вопрос 2. Использую RestAngular. Там тоже самое:

$scope.user = Restangular.one("user", 31);
$scope.user.name = "Vladimir";
$scope.user.patch();

Json отправляется также как в предыдущем примере:

{ id:31, name = "Vladimir" }

Как в этом случае передать массив как на примере ниже?

{ "user": {"name"="Vladimir", "id"=31 }}
 
  • Вопрос задан
  • 2487 просмотров
Пригласить эксперта
Ответы на вопрос 1
vmpartner
@vmpartner
In code we trust
Единственно верный формат:
{"id": "31", "name": "Vladimir"}
json.org/example

Попробуйте использовать стабильную версию Angular
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы