当前位置: 首页 > 知识库问答 >
问题:

如何解决这个问题:跨源读取阻塞(CORB)阻塞跨源响应

姬宝
2023-03-14

警告是:

jquery-1.9.1.js:8526跨源读取阻塞(CORB)阻塞跨源响应https://www.metaweather.com/api/location/search/?query=loMIME类型应用程序/json。有关更多详细信息,请参阅https://www.chromestatus.com/feature/5629709824032768。

我的代码是:

<!DOCTYPE html>
<html>
<head>
  <title> Search API </title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css"> 
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> 
  </script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"> 
  </script> 
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
   <div class="container">
     <h2>API Search Whether</h2>    
     <div class="row">
        <div class="col-md-6">
            <input type="text" name="name" id="name" class="form-control">
        </div>
        <div class="col-md-2">              
            <button type="button" id="search" class="btn btn-primary btn-lg">Search</button>
        </div>
    </div>
    <br><br><br><br>
    <div class="row">
        <table class="table" border="2px">
            <thead>
                <tr style="color:blue; font-weight:bold;">
                    <td >Domain</td>
                    <td>Suffix</td>
                    <td>Expiry Date</td>
                    <td>Created At</td>
                    <td>Country</td>
                </tr>
            </thead>
            <tbody id="tbody">
            </tbody>
        </table>
    </div>
</div>  
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"> 
</script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@8"></script>
<script type="text/javascript">
    $("#search").click(function () 
    {
        $("#tbody").html("");           
        var $this = $(this);
        var loadingText = '<i class="fa fa-circle-o-notch fa-spin"></i>Loading...';
        $("#search").attr("disabled", true);
        if ($(this).html() !== loadingText) {
            $this.data('original-text', $(this).html());
            $this.html(loadingText);
        }   
        var name = $('#name').val();        
        var i;
        $.ajax({
            url: "https://www.metaweather.com/api/location/search/?query="+name,
            dataType:'json',
            headers: function(xhr){
                xhr.setRequestHeader('x-xss-protection' ,'1; mode=block');
                xhr.setRequestHeader('Content-Language' ,'en');
                xhr.setRequestHeader('x-content-type-options', 'nosniff');
                xhr.setRequestHeader('strict-transport- security' , 'max-age=2592000; includeSubDomains');
                xhr.setRequestHeader('Vary' , 'Accept-Language, Cookie');
                xhr.setRequestHeader('Allow' , 'GET, HEAD,OPTIONS');
                xhr.setRequestHeader('x-frame-options' ,'DENY');
                xhr.setRequestHeader('Content-Type' , 'application/json');
                xhr.setRequestHeader('X-Cloud-Trace-Context' , 'f2dd29a5a475c5489584b993c3ce670d');
                xhr.setRequestHeader('Date' , 'Thu, 14 Mar 2019 09:43:04 GMT');
                xhr.setRequestHeader('Server' , 'Google Frontend');
                xhr.setRequestHeader('Content-Length' , '100');
            },
            success: function (result) {
                var f = result;
                var content = '';
                var i;
                for (i = 0; i <= f[i] ; i++) {
                    content += "<tr>";
                    content = content+"<td>"+f[i].title+"</td>";
                    content = content + "</tr>";
                }
                $("#tbody").append(content);
                $this.html($this.data('original-text'));
                $("#search").attr("disabled", false);
            }});      
      });
   </script>
</body>

我试了4个小时,但没有解决办法。。。提前谢谢你的帮助。。。

共有2个答案

周枫涟
2023-03-14

我有这个问题也发生了我们的Chrome扩展最近和关闭它通过移动所有的HTTP请求到后台页面建议Chrome团队在3.限制背景页中的跨源请求

如果扩展的后台页面只是获取并转发内容脚本选择的任何URL(有效地充当开放代理),则会出现类似的安全问题。也就是说,受损的呈现程序进程可以劫持内容脚本,并要求后台页面获取和转发攻击者选择的敏感URL。相反,后台页面应该只从扩展作者想要的URL中获取数据,理想情况下,这是一组小的URL,不会使用户的敏感数据处于危险之中。

阎智
2023-03-14

我不认为这是一个绝对的答案,因为我也有相同的错误,在铬扩展我建。现在,根据CORB(跨源读取阻塞)的建议,Chrome团队在73版中更新了浏览器的安全性,以防止幽灵和熔毁漏洞。

在这个链接上,他们提供了开发人员应该如何修复此更新中的错误的方法:https://www.chromium.org/Home/chromium-security/corb-for-developers

父资源是:https://www.chromestatus.com/feature/5629709824032768当我找到我的修复程序时,我会用它更新这篇文章。

 类似资料:
  • 我使用jQueryAjax调用了第三方API。控制台中出现以下错误: 跨源读取阻止(CORB)用MIME类型应用程序/json阻止跨源响应MY URL。更多详情见https://www.chromestatus.com/feature/5629709824032768。 我使用以下代码的Ajax调用: 当我签入Fiddler时,我得到了响应中的数据,但没有使用Ajax成功方法。 请帮帮我。

  • 我使用JQuery AJAX调用了第三方API。我得到以下错误在控制台 跨源读取阻塞(CORB)阻塞的跨源响应https://example.com/assets/front/font/fonts.min.css 使用MIME类型text/html。看见https://www.chromestatus.com/feature/5629709824032768 更多细节。

  • 我正在开发一个Chrome扩展,从某些网站向API I控件提出请求。直到Chrome 73,这个扩展都能正常工作。升级到Chrome 73后,我开始得到以下错误: 跨源读取阻塞(CORB)阻塞的跨源响应http://localhost:3000/api/users/1,其MIME类型为application/json 根据Chrome's关于CORB的文档,如果以下所有情况均为真,CORB将阻止对

  • 问题内容: 我有这段代码可以在Linux中从Serial读取,但是我不知道在读取SerialPort时阻塞和非阻塞之间有什么区别,在哪种情况下哪个更好? 问题答案: 您提到的代码是IMO编码和注释不当的代码。该代码不符合POSIX的可移植性惯例,如正确设置终端模式和POSIX操作系统的串行编程指南中所述。该代码没有提到它使用非规范(也称为原始)模式,并且重用了“阻塞”和“非阻塞”术语来描述 VMI

  • 问题内容: Java中是否有非阻塞文件读取API?如果不是,在C ++中构建一个并通过JNI从Java应用程序中调用它是否明智? 问题答案: 不,不扩展。 可能是因为并非所有的操作系​​统都支持它。 Windows确实如此,从理论上讲,您可以编写Windows特定的C ++库,并通过JNI进行调用,但是将其与集成是很多工作。 我宁愿有一个工作线程将文件内容复制到管道中,并在管道的另一端进行非阻塞读