0

いくつかのページから情報を取得する Chrome 用のプラグインを作成しようとしています。そのうちのいくつかにはロード バランサーがあり、正しい場所にルーティングするために特定のユーザー エージェント コードが必要です。

今、私は.ajax()通話を行っており、次のようないくつかのことを試しました:

$.ajaxSetup({
    beforeSend: function(request) {
        request.setRequestHeader("User-Agent","MyAgentCode");
    }
});

しかし、うまくいきません

私も試しました:

$.ajax({ 
    url: "http://blablabla.com/",
    dataType:'html', 
    beforeSend: function (req) {
        req.setRequestHeader('User-Agent', 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.83 Safari/537.1 MyAgentCode);
    },
    error: function() { alert("No data found");},
    success: parseResult
});

どちらも機能していません。

に値を追加したいだけですUser-Agent(残りはそのままにしておきます)。これにより、正しいサーバーから正しい情報を取得できます。

4

3 に答える 3

2

beforeSend を使用するよりも簡単な headers[] を使用できます。ここではCtrl-F 'headers' だけです

于 2012-10-30T22:54:16.570 に答える
1

あなたの質問を正しく理解していれば、webRequest Chrome API を使用できます。「chrome.webRequest モジュールを使用して、処理中のリクエストをインターセプト、ブロック、または変更し、トラフィックを観察および分析します。

http://developer.chrome.com/trunk/extensions/webRequest.html

User-Agent を削除する方法の例があります。削除する代わりに、 requestHeader の値を自分の値で変更できます。

 chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]);
于 2012-10-30T18:02:05.713 に答える