【问题标题】:How to see the HTTP request that AngularJS is sending?如何查看 AngularJS 发送的 HTTP 请求?
【发布时间】:2017-09-04 23:41:00
【问题描述】:

我有一个名为 myEndpoint 的 REST 端点,我可以像这样使用 Curl 成功命中:

curl \
--request DELETE \
--header "Content-Type: application/json" \
--header "Authorization: JWT eyJhbFciOiJ__FAKE__sInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNhcWliIi__FAKE__9pZCI6NSwiZW1haWwiOiJzYXFpYi5hbGkuNzVAZ21haWwuY29tIiwiZXhwIjoxNDkxNzkyMzEzfQ.feGiXm__FAKE__ZS6V-OROM7EzekRzpu_5pwi865tz8" \
--data '{
    "myAttribute": "Something"
}' \
"http://localhost:3999/api/myEndpoint"

但是,当我的 AngularJS 代码尝试调用同一个端点时,它会说没有提供强制的 myAttribute 参数失败。这就是 angularJS 的调用方式:

  var httpParams = {'myAttribute': 'Something'};
  $scope.myPromise = $http.delete('http://localhost:3999/api/myEndpoint', httpParams).then(self.myEndpointSuccess, self.myEndpointFailure);

(未显示 AngularJS 将 JWT 令牌附加到 HTTP 请求,但我确信这是有效的)

我怎样才能准确地看到 AngularJS 发送的 HTTP 请求,以便我可以对我的工作 curl 调用进行苹果对苹果的比较?

这是我的 Chrome 的 Developer 工具 -> 网络选项卡。我在那里没有看到我正在寻找的信息:

【问题讨论】:

  • 浏览器开发者工具网络标签?
  • Jaromanda,请参阅原始问题。我在“网络”选项卡的屏幕截图中添加了。但我没有看到我需要的信息。我错过了什么??
  • What am I missing - 请求 - 可能选择 All 而不是 Other
  • 嗯。好的。是的,这行得通。后续问题:它显示没有发送myAtttribute 参数。如何使用DELETE 请求发送该参数。上面的代码适用于 POST 方法。但显然不适用于 DELETE。

标签: javascript angularjs rest curl httprequest


【解决方案1】:

$http 服务文档说 $http.delete 有两个参数,URL 和 config。通过调用 curl,我了解到 myAtribute 是您要发送到端点的参数的名称,在这种情况下,它应该位于配置对象的 params 属性或 data 属性中。

angular reference another question

【讨论】:

    【解决方案2】:

    仅供参考,DELETE 请求通常没有请求正文。

    至于你的问题,RTFM; $http.delete 的第二个参数应该是一个配置对象,所以在你的情况下

    $http.delete('http://localhost:3999/api/myEndpoint', {data: httpParams})
    

    【讨论】:

      【解决方案3】:

      AngularJS 为 http 请求提供了 $http 模块。您可以使用此模块发出特定请求,然后使用 . then() 取一个成功回调,然后是错误回调

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        • 2014-09-25
        • 1970-01-01
        相关资源
        最近更新 更多