Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs gocd-编号';访问控制允许原点';请求的资源上存在标头_Angularjs_Api_Oauth_Cors_Go Cd - Fatal编程技术网

Angularjs gocd-编号';访问控制允许原点';请求的资源上存在标头

Angularjs gocd-编号';访问控制允许原点';请求的资源上存在标头,angularjs,api,oauth,cors,go-cd,Angularjs,Api,Oauth,Cors,Go Cd,我想使用它们的API将工件上传到gocd管道,API是POST/go/files/:pipeline\u name/:pipeline\u counter/:stage\u name/:stage\u counter/:job\u name/*path\u to\u file。我有启用google oauth2的nodejs应用程序。我正在上传文件,并使用angularjs中的POST请求上传它们 <script> angular.module('fupApp', [])

我想使用它们的API将工件上传到gocd管道,API是
POST/go/files/:pipeline\u name/:pipeline\u counter/:stage\u name/:stage\u counter/:job\u name/*path\u to\u file
。我有启用google oauth2的nodejs应用程序。我正在上传文件,并使用angularjs中的POST请求上传它们

<script>
    angular.module('fupApp', [])
        .directive('ngFiles', ['$parse', function ($parse) {

            function fn_link(scope, element, attrs) {
                var onChange = $parse(attrs.ngFiles);
                element.on('change', function (event) {
                    onChange(scope, { $files: event.target.files });
                });
            };

            return {
                link: fn_link
            }
        } ])
        .controller('fupController', function ($scope, $http) {

            var formdata = new FormData();
            $scope.getTheFiles = function ($files) {
                angular.forEach($files, function (value, key) {
                    formdata.append(key, value);
                });
            };

            // NOW UPLOAD THE FILES.
            $scope.uploadFiles = function () {

                var request = {
                    method: 'POST',
                    url: 'https://<mydomain1.net>:8154/go/files/FirstPipeline/13/defaultStage/1/defaultJob/',
                    data: formdata,
                    headers: {
                        'Content-Type': 'multipart/form-data'
                    }
                  };

                // SEND THE FILES.
                $http(request)
                    .success(function (d) {
                        alert(d);
                    })
                    .error(function () {
                    });
            }
        });
</script>

角度。模块('fupApp',[])
.directive('ngFiles',['$parse',function($parse){
功能fn_链接(范围、元素、属性){
var onChange=$parse(attrs.ngFiles);
元素。on('change',函数(事件){
onChange(作用域,{$files:event.target.files});
});
};
返回{
链接:fn_链接
}
} ])
.controller('fupController',函数($scope,$http){
var formdata=new formdata();
$scope.getTheFiles=函数($files){
angular.forEach($文件、函数(值、键){
formdata.append(键、值);
});
};
//现在上传文件。
$scope.uploadFiles=函数(){
var请求={
方法:“POST”,
url:'https://:8154/go/files/FirstPipeline/13/defaultStage/1/defaultJob/',
数据:formdata,
标题:{
“内容类型”:“多部分/表单数据”
}
};
//发送文件。
$http(请求)
.成功(功能(d){
警戒(d);
})
.错误(函数(){
});
}
});
我正在尝试从mydomain2.netmydomain1.net请求(这是gocd)。但是,在浏览器中,在选择文件并单击提交后,我在检查(Ctrl+Shift+I)后出现此错误

CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头


应在GoCD侧的哪里添加
访问控制允许原点
标题

当位于不同域下的一个网页试图访问不同域的资源时,浏览器会引发跨源错误

如果请求者不是浏览器,则CORS不适用。 因此,您可以在两者之间设置代理服务器。检查此问题的编辑部分:

通常情况下,代理不应该在生产中的实际应用程序中使用,但据我所知,您试图实现的是用于开发工作流的CI/CD集成。所以应该没问题


您还可以在谷歌上搜索如何在NodeJS环境中为AngularJS设置代理

当位于不同域下的一个网页试图访问不同域的资源时,浏览器会引发跨源错误

如果请求者不是浏览器,则CORS不适用。 因此,您可以在两者之间设置代理服务器。检查此问题的编辑部分:

通常情况下,代理不应该在生产中的实际应用程序中使用,但据我所知,您试图实现的是用于开发工作流的CI/CD集成。所以应该没问题


您还可以在谷歌上搜索如何在NodeJS环境中为AngularJS设置代理

从GoCD源代码和文档中可以看出,它没有对CORS的内置支持。相反,支持从浏览器中运行的前端JavaScript代码向其发出请求的推荐方法是在两者之间放置一个“反向代理”(类似于@talhature所建议的)。请参阅@sideshowbarker上的文档,谢谢。我会考虑反向代理。如果我想在gocd服务器端添加
Access Control Allow Origin
头,您能帮助我在哪里添加配置吗?是在安装nginx之后,我的服务器在哪里,然后在某个文件中,还是在哪里?我对nginx完全是新手。就我从GoCD源代码和文档中可以看出,它没有对CORS的内置支持。相反,支持从浏览器中运行的前端JavaScript代码向其发出请求的推荐方法是在两者之间放置一个“反向代理”(类似于@talhature所建议的)。请参阅@sideshowbarker上的文档,谢谢。我会考虑反向代理。如果我想在gocd服务器端添加
Access Control Allow Origin
头,您能帮助我在哪里添加配置吗?是在安装nginx之后,我的服务器在哪里,然后在某个文件中,还是在哪里?我对nginx完全陌生。谢谢您的及时回复!我将尝试反向代理:)您好,我希望您不要错过这样一个事实,即我在这里引用的代理是反向代理。所以你不认为我至少应该得到一张赞成票吗:)谢谢你的及时回答!我将尝试反向代理:)您好,我希望您不要错过这样一个事实,即我在这里引用的代理是反向代理。所以你不认为我至少应该得到一张选票吗:)