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