请求的资源上不存在“Access-Control-Allow-Origin”标头。 Chrome应用

时间:2014-05-30 11:25:52

标签: javascript google-chrome google-chrome-app

A有问题......

我向服务器创建了一个请求。我需要在URL上下载照片,但是“访问控制 - 允许 - 来源”不允许我这样做。拜托,帮助我!

var xhr = new XMLHttpRequest();
xhr.open('GET',"`http://scontent-b.cdninstagram.com/hphotos-ash/t51.2885-15/925251_476615232484089_631852735_n.jpg`", true);
xhr.responseType = 'blob';
xhr.setRequestHeader('Access-Control-Allow-Origin', '`https://ipfmnlpkligplampkpahcmideefmcmpl.chromiumapp.org/`');
xhr.onload = function(e){
$("<img src='"+window.URL.createObjectURL(this.response)+"'>").append("body");
  };
xhr.send();

控制台:

XMLHttpRequest cannot load `http://scontent-a.cdninstagram.com/hphotos-ash/t51.2885-15/10362165_1441926822728933_946328003_n.jpg`. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'chrome-`extension://ipfmnlpkligplampkpahcmideefmcmpl`' is therefore not allowed access. 

2 个答案:

答案 0 :(得分:1)

在Chrome应用中,您不必担心cross-domain permissions in XHRs

您需要确保在清单的权限中指定了您正在加载的资源。

P.S。您的解决方法无效,因为您正在设置请求字段,错误与响应字段有关。

答案 1 :(得分:0)

您可以在Vanilla中直接使用<img>完成此操作。

(function (src) {
    var img = new Image(); // or document.createElement('img');
    function _load() {
        this.removeEventListener('load', _load);
        document.body.appendChild(this);
    }
    img.addEventListener('load', _load);
    img.src = src; // fetch
}('http://scontent-b.cdninstagram.com/hphotos-ash/t51.2885-15/925251_476615232484089_631852735_n.jpg'));