拒绝获取不安全的标头“Content-Length”

Posted

技术标签:

【中文标题】拒绝获取不安全的标头“Content-Length”【英文标题】:Refused to get unsafe header "Content-Length" 【发布时间】:2017-01-22 15:56:32 【问题描述】:

谁能帮忙?

我是新手

function getFileSize(url, callback) 
        var request = new XMLHttpRequest();
        //get only header.
        request.open("HEAD", url, true);
        request.onreadystatechange = function() 
            if (this.readyState == this.DONE) 
                callback(parseInt(request.getResponseHeader("Content-Length")));
            
        ;
        request.send();
    

那行给了我一个错误>> allback(parseInt(request.getResponseHeader("Content-Length")));在控制台中

谁能帮忙?

【问题讨论】:

无论如何都没有内容/长度来引导请求...... 是的。在这里阅读。 w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13 【参考方案1】:

你的 javascript 没问题。这是一个 CORS 问题。你可以从这个答案here了解更多。

如果您可以在源中修改标头,则需要包含 Access-Control-Expose-Headers 标头。你可以阅读更多关于here的信息。

【讨论】:

是的,我发现这是 CORS 问题,但我不明白如何解决它 如果您可以修改来自源的标头然后添加此 => developer.mozilla.org/en-US/docs/Web/HTTP/… 实际上我无法从另一台不是我的服务器获取该文件,它的 vk 音乐 似乎你最后剩下的选择是在 vk 音乐和你自己之间创建一个代理。因此,您将从自己的服务器请求此信息,然后您的服务器将向 vk music 发送请求并从那里提取您想要的标头。届时,您将完全控制响应。 是的,但是代理有点慢

以上是关于拒绝获取不安全的标头“Content-Length”的主要内容,如果未能解决你的问题,请参考以下文章

WebKit“拒绝设置不安全的标头'内容长度'”

拒绝获取不安全的标头“AMP-Access-Control-Allow-Source-Origin”

拒绝获取不安全的标头“x-parse-job-status-id” - Vue.js 和 Parse Server

如何从使用 axios 发送的 POST 请求中获取 Content-Length 标头?

通过 AJAX 读取静态地图时的不安全标头警告

使用 Google Chrome 的 xmlHttpRequest 时拒绝设置不安全的标头“Origin”