1

使用 REST API 和 AngularJS 我遇到了一个问题,当发出 HTTP Get 请求时,400 Bad request会返回错误。

引用自 RFC:

The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.

URL 是这样形成的,/target/url/id. 传入的 ID 是一个包含非法字符的相当长的字符串,因此使用了 encodeURIComponent。一个例子:

i-6a622da27%2F2013-09-20-09-25%2F4d610497-cfaa-42ec-8856-d5e0e2edd3ce%2F3b560f33-d5c8-4c0a-92c5-f892e4c30408

我正在使用以下快捷方式 AngularJS GET 发出请求。

  $http.get('/target/url' + encodeURIComponent(id))
  .success(function (data, status, headers, config) {
    console.log('win');
  })
  .error(function () {
    console.log('fail');
  });

Chrome / Firefox 只返回 400。奇怪的是,当使用 HTTP REST 客户端发出完全相同的请求时,它的行为与预期相同。我尝试向请求中添加不同的标头,但没有任何效果。

我无法弄清楚从浏览器或 HTTP 客户端发出的请求有什么不同。错误本身很奇怪,因为 URL 绝对没有格式错误。

4

0 回答 0