我在Angular JS中遇到以下错误。
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://192.168.1.28:3000/system/organizations/logos/000/000/001/original/img-user.png?1453890721. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
我搜索解决方案,我找到了像
这样的解决方案 <httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
以上代码,我们需要添加--Web.Config
现在,我有简单的角度应用程序,我无法理解Web.config在哪里,我应该在哪里创建它?
请帮助我 - 我该怎么做才能解决问题?
先谢谢。
答案 0 :(得分:0)
文件web.config应该是服务器应用程序(ASP.NET)的一部分,它可以自定义它(服务器)的行为方式。
Web.config是ASP.NET的主要设置和配置文件 Web应用程序。它是驻留在根目录中的XML文档 该站点或应用程序的目录,并包含有关如何的数据 网络应用程序将采取行动。
您在问题中提到的代码告诉服务器应用程序它的响应中应包含Access-Control-Allow-Origin
标头。
然后您的角度应用程序会接收它并正常处理其余部分。
请注意,这是服务器端解决方案 - 与客户端角度脚本无关。
以下是有关web.config的教程。
答案 1 :(得分:-1)
我不确定您提到的建议解决方案是否适用于客户端(角度应用程序)。
您需要在服务器端配置上述解决方案。 使用客户端(从您的浏览器),您可能需要发送一些可以在角度应用程序中配置的属性。您可以在$ httpProvider的帮助下配置属性。 根据angular js文档
使用$ httpProvider更改$ http服务的默认行为。 因此,我们可以使用此服务,并可以设置将随每个请求传递的属性。您很可能需要配置这些设置
这里我在主app.js文件中配置它,该文件定义了名为app
的应用程序(function () {
'use strict';
angular.module('app', []).config(appConfig).run(appRun)
appRun.$inject = ['$rootScope','$location','$state','$stateParams', '$log'];
appConfig.$inject = ['$httpProvider'];
/**
* To give http $httpProvider default values
* @param $httpProvider
*/
function appConfig($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";
}
function appRun ($rootScope, $location, $state, $stateParams, $log) {
console.info('Inside appRun');
}
})();
希望这会有所帮助。 快乐学习:)