2016-11-16 58 views
1

我在angularjs中很新,我正在开发我的第一个应用程序。我在另一个系统中准备了一个不可触及的后台Restful服务,并开发了我的服务。此代码:本地开发不可能出现错误:没有'访问控制允许来源'标题出现在所请求的资源上

var MainService = angular.module('MainService', []) 
MainService.factory('MainData', ['$http', function ($http) { 
    var urlBase = 'http://demoint:1234/rest.oms/basvc/barest'; 
    var MainData = {}; 
    MainData.getData = function() { 
     return $http.get(urlBase + '/0/usecases?generation=true&UseCase=0.0.3550d.a6000015'); 
    }; 
    console.log(MainData); 
    return MainData; 
}]); 

但后来我得到我的浏览器这个错误: 的XMLHttpRequest无法加载http://demoint:1234/rest.oms/basvc/barest/0/usecases?generation=true&UseCase=0.0.3550d.a6000015。请求的资源上没有“Access-Control-Allow-Origin”标题。原因'http://localhost:9000'因此不允许访问。 enter image description here

我试图绕开的问题在这些方面,但没有运气:

  1. 将这个选项Chrome浏览器(启动参数): - 禁用网络安全
  2. 添加此扩展https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
  3. 添加以下代码配置我主要的应用程序:

    .config(['$httpProvider', function ($httpProvider) { 
         $httpProvider.defaults.useXDomain = true; 
         $httpProvider.defaults.withCredentials = true; 
         delete $httpProvider.defaults.headers.common["X-Requested-With"]; 
         $httpProvider.defaults.headers.common["Accept"] = "application/json"; 
         $httpProvider.defaults.headers.common["Content-Type"] = "application/json"; 
        } 
    ]); 
    

有关如何解决的任何想法?

enter image description here

提前感谢! Fabio

回答

1

首先,JavaScript不能授予自己访问其他网站的权限。意味着只使用JavaScript,您无法解决此问题。您必须在后端服务器中启用CORS。 如果您只是想在浏览器上运行此功能,您可以禁用Chrome中的网络安全。为此关闭所有铬的实例并运行chrome.exe --disable-web-security

对于Chrome 49加检查链接-Chrome 49 plus --disable-web-security

+0

了解,很好的解释。但我已经做了你的建议..第一点在我的尝试名单:-) – Micky

+0

上次它为我工作。运行命令之前,你关闭了所有的chrome时间吗? –

+0

不幸的是,我做了一个项目,当地所有的前端开发人员都使用该参数..我真的失去了所有这一次失望。一个我不能改变后端..所以需要修复它只有客户端.. – Micky

相关问题