web-dev-qa-db-ja.com

JQuery Ajaxリクエスト:ユーザーエージェントの変更

JQueryを使用して、自分のWebサービスにAJAX-Requestを発行しています。 HTTP-AJAX-RequestのUser-Agent HTTP-Headerを設定または変更する必要がありますが、これを最も簡単な方法で行うにはどうすればよいですか?

一部のユーザーから提供されたヒントをsetRequestHeaderメソッドを使用してUser-Agentを設定しようとしましたが、これは機能しません。実際には、新しく作成された他のヘッダー(X-Test-Headerなど)では機能しますが、User-Agentでは機能しません。

ありがとう!

14
theomega

XMLHttpRequestsのユーザーエージェントを変更することは許可されていません。これがInternet-Explorerに有効かどうかはわかりませんが、w3cは ここ を指定します:

SetRequestHeader()メソッド

[...]

SetRequestHeader(header、value)メソッドが呼び出されると、ユーザーエージェントは次の手順を実行する必要があります。[...]

ヘッダーが次のいずれかのヘッダーと大文字と小文字を区別しない一致である場合は、これらの手順を終了します。

[...]

  • ユーザーエージェント
29
theomega

JQueryを使用している場合は、ajaxSetupでリクエストヘッダーを設定します。

$.ajaxSetup({
  beforeSend: function(request) {
    request.setRequestHeader("User-Agent","InsertUserAgentStringHere");
  }
});
10
Peter Olson

そうですね、いつでもjQueryを使用してサーバー側のページに投稿し、サーバー側のページでUser-Agentヘッダーを変更したり、jQueryによって直接アクセスされたはずのページにリクエストを送信したりできます。