AngularJS $ http.post (): возвращает ERR_EMPTY_RESPONSE

0

У меня есть форма, которая должна передавать данные POST на сервер, который находится в той же сети. При отправке этих данных на сервер возвращается ERR_EMPTY_RESPONSE.

Я также попытался отправить на тот же url используя POSTMAN, и этот способ, похоже, работает.

Является ли политика этого же происхождения причиной этого? Есть ли решение обходить эту политику?

Примечание. Невозможно изменить что-либо на стороне сервера, только на стороне клиента

Вот фабрика, которую я использую для публикации данных:

  app.factory("SendForm", ["$http", "CONFIG", function($http, CONFIG) {
      return {
        sendInfo: function(dynamic, user1, user2, user3, user4, user5, fixed, aux, onSuccess, onError, onFinally) {
          var url = CONFIG.urlSendForm + "?absolute=" + CONFIG.absolute + "&info" + dynamic + "$dyn=" + user1 + "&info2=" + user2 + "&info3=" + user3 + "&info4=" + user4 + "&info5=" + user5 + "&fixed=" + fixed + "&aux=" + aux;
          $http.post(url, {
              headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
              }
            })
            .success(function(response, data) {
              console.log("success " + response + data + status);
              onSuccess();
            }).error(function(response, data, status, headers, config) {
              onError(response);

            });
        }
      }
    }]);

и это то, что я регистрирую в оболочке после публикации:

ОПЦИИ http://192.168.5.2:9000/?absolute=1234&info1 $ dyn = 1 & info2 = 1 & info3 = undefined & info4 = undefined & info5 = undefined & fixed_info = undefined & aux_info = undefined net :: ERR_EMPTY_RESPONSE

  • 0
    Та же сеть? Это тот же домен?
  • 0
    Механизмы POST Angular функционируют немного иначе, чем другие javascript. Я не помню специфику, но я знаю, что для любого из моих угловых проектов, я должен использовать file_get_contents('php://input') вместо $ _POST. Попробуйте что-то вроде $POST = json_decode(file_get_contents('php://input'),true);
Показать ещё 4 комментария
Теги:
http
http-post

1 ответ

1
Лучший ответ

у вас плохой аргумент

post (url, data, [config]); DOC ЗДЕСЬ

изменить на

var data = {
dynamic: dynamic,
user1: user1,
user2: user2,
.....
.....
}

var config = {
headers: { 'Content-Type': 'application/x-www-form-urlencoded'}
}

$http.post(CONFIG.urlSendForm, data , config).success(...).error(...);
  • 0
    теперь это отображается в консоли браузера: XMLHttpRequest не может загрузить 192.168.5.2:9000 . В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Источник ' localhost ', следовательно, не имеет доступа.
  • 1
    @changez Это было своего рода то, о чем я спрашивал в своем комментарии. "Это тот же домен?" Я думаю, что ответ - нет.
Показать ещё 11 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню