首页 > 解决方案 > 如何使用 declarativeNetRequest 动态规则附加到 requestHeaders

问题描述

在 Chrome 扩展中,我正在尝试创建一个动态规则,通过declarativeNetRequest如下方式将字符串附加到用户代理:

    chrome.declarativeNetRequest.updateDynamicRules({
      addRules: [
        {
          id: 1,
          priority: 1,
          action: {
            type: 'modifyHeaders' as RuleActionType,
            requestHeaders: [
              { 
                header: 'user-agent', 
                operation: 'append' as HeaderOperation, 
                value: '-test'
              },
            ],
          },
          condition: {
            regexFilter: 'https://www.yahoo.com\?.*',
            resourceTypes: [
              'main_frame' as ResourceType,
              'sub_frame' as ResourceType,
            ],
          },
        },
      ],
    }, async (result: any) => {
      console.log('created', result);
    });

我在控制台中收到以下错误:

Unchecked runtime.lastError: Rule with id 1 must not specify a request header to be appended.

文档中是否缺少我无法应用append操作的限制requestHeaders?我用它进行了测试,responseHeaders它工作正常(这不是我想要实现的)。

标签: google-chrome-extension

解决方案


这是一个已知的错误,https://crbug.com/1117475

同时在 的值中使用set而不是。appendoperation


推荐阅读