如果您在Firefox WebExtension中发出获取请求,它将自动设置“origin”标题。例如,当我在WebExtensions中运行此代码时。。。
fetch('http://example.com/')
... 结果请求包含标题:“origin:moz”-extension://539a0d5b-60d9-4726-b3de-27d6979edc26"
在Chromium中运行相同的代码不会设置标头。(更新:这并不总是正确的,因为Chrome可能还会添加标题:“来源:Chrome-extension://...".)
有没有一个选项可以发送没有“来源”的请求?
我在FetchAPI中找不到选项。到目前为止,我看到的唯一解决方案是使用WebRequestAPI删除头部,但这似乎过于复杂。
当WebExtension使用FetchAPI发送请求时,Firefox和Chrome都会自动填充origin
标题。目前没有API选项来阻止它。
如果不希望出现这种行为,则有两种选择:
源
头使用webRequest API选项1将起作用,因为源
标头仅由读取API设置。对于选项2,您必须安装一个onBeforeSendHeaders
处理程序,以便在请求离开浏览器之前删除标头:
function originWithId(header) {
return header.name.toLowerCase() === 'origin' &&
(header.value.indexOf('moz-extension://') === 0 ||
header.value.indexOf('chrome-extension://') === 0);
}
chrome.webRequest.onBeforeSendHeaders.addListener(
(details) => {
return {
requestHeaders: details.requestHeaders.filter(x => !originWithId(x))
}
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]
);
要使用API,您需要将“webRequest”
和“webRequestBlocking”
添加到manifest.json
中的权限中。
我想创建一个API,为了验证API使用者,我将提供一个API密钥、应用id和应用机密。问题是,我想知道http请求来自哪里,这样我就可以知道发出que请求的主机是否是注册主机。例如:www.someone。com的应用程序id为0001,应用程序机密为1200,api密钥为458。如果此凭据用于发出请求,我想知道请求者是否真的是www.someone。通用域名格式
我试图构建一个仅当源URL位于allowlist上时才执行逻辑的应用程序。我正在尝试使用以下方法获取Firebase函数内部的源URL: 我试图从这个堆栈溢出帖子中使用这些: 所有返回未定义。 我试图从堆栈溢出帖子中整合此函数: 这返回我的云函数的基本url 我真正想看到的是发布文章的url。我用这个来写这篇文章,所以我希望看到:
问题内容: 我想知道如何一次获取多个GET URL,然后将获取的JSON数据放入我的React DOM元素中。 这是我的代码: 但是,我想从服务器中获取其他JSON数据,然后使用传递到其中的所有这些JSON数据呈现我的ReactDOM。例如: 这可能吗?如果不是,将多个JSON数据提取到我的渲染ReactDOM元素中的其他解决方案是什么? 问题答案: 您可以在解决方案之前依靠Promises来执行
我正在构建一个Java的grpc服务器,我很难得到请求头。proto文件是使用Pro buf-maven-plugin编译的,基于生成的存根,我无法访问上下文或请求元数据。 我还尝试在消息请求中定义一个键/值列表,希望grpc能够处理头映射,但目前为止没有成功。 知道我怎么能拿到标题吗? 谢谢 我的原型文件内容: 服务器端实现如下所示: 版本请求。getHeadersCount()始终返回0,尽管
客户端可能会发送多个查询参数,如: 我需要获取所有查询参数并将其提取为字符串
问题内容: 如果浏览到,我希望得到以下JSON响应: 但是,如果我使用selenium 我懂了 HTML标记来自哪里?如何从获得HTTP请求的原始JSON响应? 问题答案: 除了原始JSON响应外,还包含HTML以在浏览器中“漂亮地打印”响应。如果使用Firefox DOM和Style Inspector在浏览器中查看JSON响应的源,您将得到相同的结果。 要获取原始JSON响应,您可以照常浏览H