从AngularJS webapp制作XHR时的HTTP 400(错误请求)

时间:2013-09-23 10:47:54

标签: javascript http angularjs

使用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.

网址形式为/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肯定没有格式错误。

0 个答案:

没有答案