- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Chrome 一直工作到版本 73。现在它向我抛出 CORB 警告并阻止我的 chrome 扩展程序运行。
这是我的 ajax jquery 代码,没什么特别的
$.ajax({
url: this.url + "api/users",
type: 'get',
data: { account_id: this.account_id(), user_id: this.user_id(), person_id: person_id },
success: function (data) {
//do stuff
}
});
我确实注意到,如果我删除 x-content-type-options header ,使其不再显示为“nosniff”,我可以获得一些要返回的 Ajax 请求,但不会返回其他请求。不确定这是否意味着什么,但我注意到返回数组的 json 请求有效,但其他请求无效。
remove_keys = %w(X-Content-Type-Options)
response.headers.delete_if{|key| remove_keys.include? key}
[{'id' : '123'}] <-worked
{'id' : '123'} <- did not work (not sure if means anything)
chrome 的完整错误
Cross-Origin Read Blocking (CORB) blocked cross-origin response https://ideas.test/api/users?token=W9BDdoiKcXLWSHXWySnwdCV69jz2y&account_id=3098355&user_id=john%40gmail.com&person_id=21046915&sync=false&new=true with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.
响应头
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: x-auth_token
Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD
Access-Control-Allow-Origin: chrome-extension://mhikhjencpecbhelhjgdcgpdhlhdlhjh
Access-Control-Expose-Headers:
Access-Control-Max-Age: 1728000
请求 header
Provisional headers are shown
Accept: */*
Origin: chrome-extension://mhikhjencpecbhelhjgdcgpdhlhdlhjh
Referer: https://3.basecamp.com/
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
由于 CORB,我怎样才能得到返回的响应主体而不用 chrome 移除响应主体?
最佳答案
我找到了解决方法。对某些人来说可能有点矫枉过正,但我花了 15 分钟来修复所有问题。在您的内容脚本中将所有 ajax 调用包装到一个函数中:
将 ajaxGet 函数添加到您的内容脚本:
function ajaxGet(data){
return new Promise(function (resolve, reject) {
chrome.runtime.sendMessage({action: 'ajaxGet', data: data}, function (response) {
console.log(response)
if(response&&!response.statusText){//Might need some work here
resolve(response);
} else {
reject(response)
}
});
});
}
然后在你的 background.js 中添加一个监听器:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if(request.action=="ajaxGet"){
$.ajax(request.data).then(sendResponse,sendResponse)
return true //telling chrome to wait till your ajax call resolves
}
})
代替
$.ajax({
url: this.url + "api/user_boards",
type: 'get',
data: { account_id: this.account_id()}
})
打电话
ajaxGet({
url: this.url + "api/user_boards",
type: 'get',
data: { account_id: this.account_id()}
}).then(onSuccess, onError) //handle response from here
如果您不想在 background.js 中使用 jquery,您可以改为调用 Xhr。像这样:
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
sendResponse(this.responseText)
} else {
//handle errors
}
});
xhr.open("GET", request.data.url);
xhr.send(data);
您必须自己解决 header 问题。
关于javascript - 如何删除 CORB 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55153960/
我已经使用 Jquery AJAX 调用了第三方 API。我在控制台中收到以下错误: Cross-Origin Read Blocking (CORB) blocked cross-origin re
我有一个 react webapp,它调用一个 api(使用 fetch 调用另一个 api)获取图像 url,并通过 img 标签在屏幕上呈现图像。 我遇到的问题是图像无法加载,而是在控制台中收到
我不确定为什么在尝试使用跟踪像素时会出现 CORB 错误。 我认为如果返回图像并且内容类型是图像(gif 或 jpeg),则不会发生这些错误。确切的错误是: 跨源读取阻塞 (CORB) 阻止了跨源响应
我没有收到使用 Angular 4 服务的 api 调用的响应,但在浏览器中工作的相同调用我面临以下给定错误 - 跨源读取阻止 (CORB) 阻止跨源响应 最佳答案 我在获得回复方面也遇到了类似的挑战
我有一个 corb 脚本来对 xml 文件运行节点替换。 如果我不指定集合,它会从现有集合中删除文档吗? 最佳答案 如果您使用 xdmp:node-replace() 更改文档,那么该文档将保留在它的
我知道很多人也有这个问题。但是,似乎人们正在混合使用CORB和CORS。我之前已经安装了CORS扩展程序,但似乎无法在CORB中使用。 我在前端使用聚合物 return { "Content-type
Chrome 一直工作到版本 73。现在它向我抛出 CORB 警告并阻止我的 chrome 扩展程序运行。 这是我的 ajax jquery 代码,没什么特别的 $.ajax({ url:
这个问题已经有答案了: XMLHttpRequest cannot load XXX No 'Access-Control-Allow-Origin' header (11 个回答) 已关闭 3 年前
我正在使用下载 URL 从我的 Firebase 存储中获取 HTML 文件并将其显示在模板中。在我的模板中,我使用 与 src设置为下载地址。浏览器显示损坏的文件,控制台显示 Cross-Origi
我正在优化我的 PDF 查看器应用程序,我想为 PDF 使用链接预加载。 PDF 下载是通过 XHR 请求触发的(它只是后台的 PDF.js 库)。 我的想法是预加载 PDF,然后当加载处理 PDF
合并发生在 corb 过程中,用于添加超过 1000 万个文档的节点。 CPU/IO 达到最大导致超时。如果我停电合并,corb 过程将由于许多站而停止。我能做什么或解决问题。 我有 6 片森林。 合
当我尝试从我的 JavaScript (React) 应用程序中访问 Pixabay API 时,遇到了跨源读取阻止 (CORB)。 这是我的获取代码: fetch(`https://pixabay.
我正在尝试 JSONP。我有一个如下所示的 HTML: JSONP 我的 main.js 文件是: function showPlayers(dat
我有一个服务器端呈现的 Angular 应用程序,我在其中使用 ng2-adsense在某些路线上展示 AdSense 广告。我注意到大部分时间(并非所有时间)我的广告都没有显示,并且我在 Chrom
我尝试使用 open-graph-scraper 和 Vue.js 抓取 OG 数据,但由于 Chrome 中的 CORB 而被阻止。对于我使用 Node 运行的脚本来说,它运行良好,但是是否有解决此
我正在 React 上运行一个简单的应用程序来显示我在 https://my.pcloud.com/ 上上传的文件中的音轨使用 React-Player 组件。 但是,轨道不显示,我在控制台上收到以下
我想调试 Chrome 74 中可能由 CORB 引起的本地开发环境问题。我想看看 - 当我关闭 CORB 时 - 问题是否消失。 根据 Google developer docs比如说 You ca
我是 CORB 的新手,正在尝试使用指南: https://github.com/marklogic-community/corb2/wiki/Hello-World-from-CORB 我的 COR
所以我有一个文件 uris.xqy,它获取我想在 corb 中操作的文档 URI。 然后我有引入 $URI 的 docs.xqy 将变量 $URI 声明为 xs:string external; 然后
我想通过我的 chrome 扩展程序中的 post 调用 api,问题是无法获取响应数据。 我刚刚在控制台中收到跨源读取阻止 (CORB),但响应为空。 Cross-Origin Read Block
我是一名优秀的程序员,十分优秀!