0

我正在尝试使用 Chrome Dev 来调试以下 Angular 发布请求:

$http.post("http://picjboss.puma.lan:8880/fluxpousse/api/flow/createOrUpdateHeader", flowHeader)

通过右键单击/评估运行语句后,我可以在网络面板中看到处于挂起状态的帖子。如何获得结果或“提交”请求并从开发控制台轻松离开这种“待定”状态?

我对 JS 回调还不是很熟悉,需要一些代码。谢谢。

编辑

我试图从控制台运行:

$scope.$apply(function(){$http.post("http://picjboss.puma.lan:8880/fluxpousse/api/flow/createOrUpdateHeader", flowHeader).success(function(data){console.log("error "+data)}).error(function(data){console.log("error "+data)})})

它返回:未定义

编辑

返回的错误消息是:JBoss Web/2.1.3.GA - Rapport d'erreur

ETAT HTTP 400 -

类型Rapport d'�tat

信息

描述La requ�te envoy�e par le client �tait syntaxiquement wronge ()。

JBoss Web/2.1.3.GA

编辑我试图解决的帖子生成 HTTP 400。结果如下:

  • 请求 URL:http://picjboss.puma.lan:8880/fluxpousse/api/flow/createOrUpdateHeader 请求方法:POST 状态码:400 Mauvaise Requ?te Request Headersview source Accept:application/json, text/plain, / Accept-编码:gzip,deflate,sdch Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Content-Length:5354 Content-Type:application/ json;charset=UTF-8 Cookie:JSESSIONID=285AF523EA18C0D7F9D581CDB2286C56 主机:picjboss.puma.lan:8880 来源:http://picjboss.puma.lan:8880 参考http://picjboss.puma.lan:8880/fluxpousse/ 1200 updateDate: null Response Headersview source Connection:close Content-Length:996 Content-Type:text/html;charset=utf-8 Date:Fri, 08 Nov 2013 15:19:30 GMT Server:Apache-Coyote/1.1 X-技术支持:Servlet 2.5;JBoss-5.0/JBossWeb-2.1
4

1 回答 1

1

每个 $http 请求都应该有这样的成功和错误回调:

$http({method: 'POST', url: '/someUrl'}).
success(function(data, status, headers, config) {
  // this callback will be called asynchronously
  // when the response is available
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});

在这些方法中,您可以在开发工具中进行调试。

如果您的请求一直处于未决状态,则可能是服务器端出现问题。

请注意,如果您没有使 $http 可用的断点(例如在 chrome devtools 中使用 Angular 1.2.6),您可以使用:

angular.element(document).injector()
 .get('$http')({method: 'POST', url: '/someUrl'})
    .success(function(data, status, headers, config) {
       console.log('$http-success:',arguments);
       debugger;
    })
    .error(function(data, status, headers, config) {
       console.log('$http-error:',arguments);
       debugger;
    });
于 2013-11-08T14:20:01.480 回答