AngularJS $ http.post():返回ERR_EMPTY_RESPONSE

时间:2015-11-30 13:01:47

标签: javascript angularjs http http-post

我有一个表单需要将数据POST到位于同一网络中的服务器。将此数据发布到服务器时,它将返回ERR_EMPTY_RESPONSE

我还尝试使用 POSTMAN 发布到相同的url,这种方式似乎正在发挥作用。

同源策略是否导致此问题?是否有任何解决方案可以解决该政策?

注意:无法更改服务器端的任何内容,只能更改客户端

以下是我用来发布数据的工厂:

  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);

            });
        }
      }
    }]);

这是我在发布后登录shell的内容:

  

选项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   净:: ERR_EMPTY_RESPONSE

1 个答案:

答案 0 :(得分:1)

你的论点命令不好

  

post(url,data,[config]); DOC HERE

更改为

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(...);