$ http以外的每个HTTP客户端都给了我" Hello,world!"

时间:2016-01-10 18:33:45

标签: angularjs http browserify

我正在开发一个项目,要求我POST到远程服务器并将流式响应放到对话框中。除了$http在每个回复的开头添加一个随机字符这一事实外,所有事情都有效。为了解决这个问题,我试图使用不同的HTTP客户端。我尝试过使用Browserify的http模块,request-promise和jQuery,但所有这些模块都只返回Hello, world!作为响应。

使用jQuery的相关HTTP请求代码:

return new Promise(function (resolve, reject) {
  $.post('http://signumd-5b4087ed.lambdavps.svc.tutum.io:3000/run/java', {environment: environment, code: $scope.code})
  .done(function (data) {
    resolve(data)
  }).fail(function (err) {
    reject(err)
  })
}).then(function (output) {
  console.log(output)
  return $mdDialog.show({
    controller: 'ResultDialogController',
    templateUrl: 'partials/result-dialog.html',
    parent: angular.element(document.body),
    targetEvent: ev,
    clickOutsideToClose: true,
    locals: {
      output: output,
      expected: $scope.problem.contents.cases[0].stdout
    }
  })
}).then(function (answer) {
  window.alert(answer)
}).catch(function (err) {
  console.error(err)
})

Angular的相关HTTP请求代码:

return $http({
  method: 'POST',
  url: 'http://signumd-5b4087ed.lambdavps.svc.tutum.io:3000/run/java',
  data: {
    environment: environment,
    code: $scope.code
  }
}).then(function (output) {
  return $mdDialog.show({
    controller: 'ResultDialogController',
    templateUrl: 'partials/result-dialog.html',
    parent: angular.element(document.body),
    targetEvent: ev,
    clickOutsideToClose: true,
    locals: {
      output: output.data,
      expected: $scope.problem.contents.cases[0].stdout
    }
  })
}).then(function (answer) {
  alert(answer)
}).catch(function (err) {
  console.error(err)
})

分支机构我正在进行此项工作:https://github.com/ID10T-Errors/signum-workshop-client/tree/t%CD%8A%CD%94h%CD%92%CC%A2e%CC%9D%CD%86y%CC%B2%CC%8F-%CD%98%CC%A3%C5%88%CD%95e%CD%9D%CC%A6e%CC%9E%CC%8Bd%CC%83%CD%96-%CC%A2%CD%8Ct%CD%8E%CC%81o%CC%A7%CD%8B-%CC%B0%CC%8Ad%CC%AF%CC%BF%C3%AC%CD%95e%CC%9D%CC%88

半工作的分支(除了无关的字符):https://github.com/ID10T-Errors/signum-workshop-client/tree/gh-pages

在线工作版:http://workshop.ctftoolkit.com/

1 个答案:

答案 0 :(得分:0)

我是个傻瓜

服务器有默认产生" Hello,world!"当没有输入时,发生这种情况是因为我没有Content-Type标题。