2016-04-29 79 views
0

我能够通过邮递员,甚至通过我的应用程序时,我用这样简单的JavaScript请求来发布基地64编码的图像:NG-文件上传跨域错误

var data=  "userPhoto=data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABAQEAS ................(image data) Rd1bbfc2B%2FdDXGWxWHtA2N6NrL%2BLNf6wIa92a5m5v2s0c7tObhgdJMdV6Rm4mt7YkqukTMsv2vVsgl5j73tQasFOHYMP3nqf%2F%2FZ"; 
var xhr = new XMLHttpRequest(); 
xhr.withCredentials = true; 
xhr.addEventListener("readystatechange", function() { 
    if (this.readyState === 4) { 
    console.log(this.responseText); 
} 
}); 

xhr.open("POST", "http://localhost:8000/test2"); 
xhr.setRequestHeader("cache-control", "no-cache"); 
xhr.setRequestHeader("postman-token", "b98cbdf1-8918-b8fb-6b50- a626c301cffc"); 
xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded"); 
xhr.send(data); 

但是,当我使用简单

<div class="button" ngf-select ng-model="file" name="file" ngf-pattern="'image/*'" ngf-accept="'image/*'" ngf-max-size="20MB" ngf-min-height="100" ngf-resize="{width: 100, height: 100}">Select</div> 

脚本:

代码 ng-file-upload

HTML复制210

我得到一个跨域错误:

XMLHttpRequest cannot load 'url'. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

基本上我试图从开始实际场景的简化版本到最基本的使用情况下,网站上的所有不同的组合。它只是我或角度错误真的令人沮丧,因为它们之间有很多层。 C#绝对不是那么难

回答

1

好吧算了一下。在上传功能中,我使用的是整个网址http://localhost:8000/test1,但本来应该只使用/test1

$scope.upload = function (file) { 
    Upload.upload({ 
     url: '/test1', 
     data: {'userPhoto':file} 
    }).then(function (resp) { 
     console.log('Success ' + resp.config.data.file.name + 'uploaded. Response: ' + resp.data); 
    }, function (resp) { 
     console.log('Error status: ' + resp.status); 
    }); 
};