No' Access-Control-Allow-Origin'标头出现在请求的资源上。 Origin' file://'因此不允许访问。

时间:2014-10-06 18:49:17

标签: javascript angularjs

我有一台在我的计算机上本地运行的node.js服务器。我正在使用js-code开发html页面:

var MainController = function($scope, $http) {

    var onCountComplete = function(response) {
        $scope.count = response.data;
    };

    var onError = function(reason) {
        $scope.error = "Could not fetch data";
    };

    $http.get("http://localhost:1337/api/count")
        .then(onCountComplete, onError);

    $scope.message = "hello";
};

运行此代码时出现错误:

  

XMLHttpRequest无法加载http://localhost:1337/api/count。没有   '访问控制允许来源'标题出现在请求的上   资源。 Origin' file://'因此不允许访问。

我尝试使用--allow-file-access-from-files键启动Chrome,但它没有任何帮助。有没有办法在开发过程中避免这个错误?

1 个答案:

答案 0 :(得分:0)

如果您正在使用Apache,则可以尝试此解决方案。这在一些小项目中对我有用。只需将这些行添加到.htaccess文件即可。根据需要自定义,我的下面例子是相当宽松的,你可能只需要POST或特定的来源。

Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods "GET, POST, OPTIONS, DELETE"
Header add Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type"