无法从Angularjs调用Closure Compiler Web服务

时间:2016-07-29 06:13:11

标签: javascript http-headers cors google-closure-compiler

尝试使用带有Angular js的google closure-compiler这是我的代码/函数:

$scope.processForm = function(js_code) {

  var js_code_lenght = js_code.length;
  alert(js_code_lenght);
  console.log($scope.formData);
  $http({
    method: 'POST',
    url: 'http://closure-compiler.appspot.com/compile',
    ///data    : $.param($scope.formData),  // pass in data as strings
    params: {
      'output_info': 'compiled_code',
      'output_format': 'text',
      'compilation_level': 'WHITESPACE_ONLY',
      'js_code': js_code
    },
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    }
    // set the headers so angular passing info as form data (not request payload)
  })
  .success(function(data) {
    console.log(data);

    if (!data.success) {
      // if not successful, bind errors to error variables
        console.log(data);
    } else {
      // if successful, bind success message to message
      $scope.message = data.message;
    }
  });
};

问题出在请求标题中,我收到此错误:

POST http://closure-compiler.appspot.com/compile?compilation_level=WHITESPACE_ON…%0D%09%09%09%7D;%0D+%7D();%0D&output_format=text&output_info=compiled_code 411 (Length Required)

几乎是错误代码411()长度必需。 我想知道是否有人有想法解决这个问题。我一直在谷歌搜索,我还没有找到解决方案。感谢。

1 个答案:

答案 0 :(得分:0)

您必须提供Content-Length标头。它可能就像是;

'Content-Length': $.param($scope.formData).length,