Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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
Javascript 角度JS的跨原点请求被阻止_Javascript_Angularjs - Fatal编程技术网

Javascript 角度JS的跨原点请求被阻止

Javascript 角度JS的跨原点请求被阻止,javascript,angularjs,Javascript,Angularjs,我在角度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-O

我在角度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

现在,我有一个简单的angular应用程序,我无法理解Web.config在哪里,我应该在哪里创建它

你能帮我吗?我该怎么解决这个问题


提前谢谢。

文件web.config应该是服务器应用程序(ASP.NET)的一部分,它可以自定义服务器的行为方式

Web.config是ASP.NET的主要设置和配置文件 web应用程序。它是驻留在根目录中的XML文档 网站或应用程序的目录,并包含有关 web应用程序将起作用

您在问题中提到的代码告诉服务器应用程序,它应该在响应中包含
accesscontrolalloworigin

然后你的angular应用程序接收到它,并正常处理其余部分

请注意,这是一个服务器端解决方案-与客户端脚本无关


这里有一个关于

文件web.config应该是服务器应用程序(ASP.NET)的一部分,该应用程序可以自定义它(服务器)的行为方式

Web.config是ASP.NET的主要设置和配置文件 web应用程序。它是驻留在根目录中的XML文档 网站或应用程序的目录,并包含有关 web应用程序将起作用

您在问题中提到的代码告诉服务器应用程序,它应该在响应中包含
accesscontrolalloworigin

然后你的angular应用程序接收到它,并正常处理其余部分

请注意,这是一个服务器端解决方案-与客户端脚本无关


这里有一个关于

我不确定您提到的建议解决方案是否适用于客户端(角度应用程序)

您需要在服务器端配置上述解决方案。 使用客户端(从浏览器)时,您可能需要发送一些可在angular应用程序中配置的属性。您可以在$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');
}
})();
希望这能有所帮助。
愉快学习:)

我不确定您提到的建议解决方案是否适用于客户端(角度应用程序)

您需要在服务器端配置上述解决方案。 使用客户端(从浏览器)时,您可能需要发送一些可在angular应用程序中配置的属性。您可以在$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');
}
})();
希望这能有所帮助。
快乐学习:)

检查此链接:在后端使用什么?检查此链接:在后端使用什么?我不使用ASP.NET,我有Ubuntu系统,我是ruby on rails开发人员。它是一个通用的角度应用程序,不依赖RubyonRails或asp.net,但您尝试的解决方案是针对asp.net的。请理解,除非响应包含上述标题,否则不支持通过ajax跨域访问。您的服务器应将其发送给angular继续处理。实际上,我从第三方站点(通过API)获取图像,该图像我希望以pdf格式显示(对于pdf,我使用pdfmake作为angular)。您的第三方站点应允许您通过ajax访问该图像(发送访问控制允许源标题)。或者你必须在你的服务器上创建一个php脚本,并通过服务器访问第三方站点。我从另一个应用程序获取图像,通过IP端口传递到angularjs,我转换base64图像,因为我使用的是XMLHttpRequest。我没有使用ASP.NET,我有Ubuntu系统,我是ruby on rails开发者。它是一个通用的角度应用程序,不依赖RubyonRails或asp.net,但您尝试的解决方案是针对asp.net的。请理解,除非响应包含上述标题,否则不支持通过ajax跨域访问。您的服务器应将其发送给angular继续处理。实际上,我从第三方站点(通过API)获取图像,该图像我希望以pdf格式显示(对于pdf,我使用pdfmake作为angular)。您的第三方站点应允许您通过ajax访问该图像(发送访问控制允许源标题)。或者,您必须在服务器中创建一个php脚本,并通过服务器访问第三方站点。我从另一个应用程序获取图像,并通过IP端口将其传递到angularjs,我正在使用XMLHttprequest转换base64图像