Javascript 使用jQuery从响应头获取图像文件大小

Javascript 使用jQuery从响应头获取图像文件大小,javascript,jquery,ajax,filesize,Javascript,Jquery,Ajax,Filesize,我想用jQuery获取图像的文件大小 就快到了,但我似乎一直在一条线上出错 有人能帮我吗:) 这是一个完整的脚本,它实现了所有的魔法。这是其中的一部分 同源策略不允许从发出请求的域以外的域请求资源。例如,位于jsfiddle.net上的脚本不能“XMLHttpRequest”位于src.sencha.io上的资源。跨源资源共享(CORS)允许在服务器发送以下标题时访问位于不同域上的资源:访问控制允许源:your domain.com 在JSFIDLE演示中,请求或/favicon.png可以正

我想用jQuery获取图像的文件大小

就快到了,但我似乎一直在一条线上出错 有人能帮我吗:)

这是一个完整的脚本,它实现了所有的魔法。这是其中的一部分


同源策略不允许从发出请求的域以外的域请求资源。例如,位于jsfiddle.net上的脚本不能“
XMLHttpRequest
”位于src.sencha.io上的资源。跨源资源共享(CORS)允许在服务器发送以下标题时访问位于不同域上的资源:访问控制允许源:your domain.com

在JSFIDLE演示中,请求或/favicon.png可以正常工作。这是因为fiddle.jshell.net允许CORS用于jsfiddle.net


尝试使用任何其他URL进行请求,并查看您的控制台。它应该报告:访问控制不允许原点允许原点

同源策略不允许从发出请求的域以外的域请求资源。例如,位于jsfiddle.net上的脚本不能“
XMLHttpRequest
”位于src.sencha.io上的资源。跨源资源共享(CORS)允许在服务器发送以下标题时访问位于不同域上的资源:访问控制允许源:your domain.com

在JSFIDLE演示中,请求或/favicon.png可以正常工作。这是因为fiddle.jshell.net允许CORS用于jsfiddle.net


尝试使用任何其他URL进行请求,并查看您的控制台。它应该报告:访问控制不允许原点允许原点

您知道jQuery可以通过什么方式获得图像的文件大小吗?如果它能更可靠地工作,那么单靠jQuery/Ajax也无济于事。如果您可以控制服务器端代码,请发送带有“*”的Access control Allow Origin标头<代码>访问控制允许来源:您知道jQuery可以通过什么方式获取图像的文件大小吗?如果它能更可靠地工作,那么单靠jQuery/Ajax也无济于事。如果您可以控制服务器端代码,请发送带有“*”的Access control Allow Origin标头<代码>访问控制允许原点:
function displayVals() {
    var original = jQuery("#single").val();
    jQuery(".origimg").attr("src", original);
    var width = jQuery(".origimg").width();
    jQuery(".origprev").attr("style", "background: url(" + original + ") no-repeat 0 0 / 100% auto transparent");
    jQuery("p").delay(2000).queue(function() {
        jQuery(this).html("http://src.sencha.io/" + width + "/" + original);
        jQuery(".theimg").attr("src", "http://src.sencha.io/" + width + "/" + original);

        function getImageSizeInBytes(original) {
            var request = new XMLHttpRequest();
            request.open("HEAD", original, false);
            request.send(null);
            var headerText = request.getAllResponseHeaders();
            var re = /Content\-Length\s*:\s*(\d+)/i;
            re.exec(headerText);
            return parseInt(RegExp.$1);
        }
        var size_image = getImageSizeInBytes(original);
        jQuery('.size').html(size_image);
    })
}
jQuery('.go').click(

function() {
    displayVals();
    var original = jQuery("#single").val();
});