Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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 从angular JS的控制器启用CORS_Javascript_Jquery_Angularjs_Cors - Fatal编程技术网

Javascript 从angular JS的控制器启用CORS

Javascript 从angular JS的控制器启用CORS,javascript,jquery,angularjs,cors,Javascript,Jquery,Angularjs,Cors,我有一个带有服务的控制器,可以从其他服务器获取json,我来到这里 跨源请求被阻止:同源策略不允许读取http:somesite.com上的远程资源。这可以通过将资源移动到同一域或启用CORS来解决。 我注意到,一些相同的问题将由“访问控制允许源代码”:“*”在我的标题中修复。在我的情况下,我看不到任何修复进展 这是我的控制器的代码: var myApp = angular.module('cplanner',[]); myApp.controller('GetItemCtrl', ['$sc

我有一个带有服务的控制器,可以从其他服务器获取json,我来到这里

跨源请求被阻止:同源策略不允许读取http:somesite.com上的远程资源。这可以通过将资源移动到同一域或启用CORS来解决。

我注意到,一些相同的问题将由
“访问控制允许源代码”:“*”
在我的标题中修复。在我的情况下,我看不到任何修复进展

这是我的控制器的代码:

var myApp = angular.module('cplanner',[]);

myApp.controller('GetItemCtrl', ['$scope', '$http', function($scope, $http) {

    var itemUrl = 'http:somesite.com';

    //console.log(itemUrl);
    $http({url: itemUrl,
    dataType: 'json',
    method: 'POST',
    dataType : 'json',
    headers: {
       "Access-Control-Allow-Origin": "*",
       "Access-Control-Allow-Methods": "POST, GET, OPTIONS, PATCH, DELETE",
       "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept"
    },
    xhrFields: {
        withCredentials: true
    }}).success(function(data, status, headers, config) {
        //check if the response has ok status
        if(data.status == "ok"){
        console.log(data.data);
            $scope.items = data.data;
        }


        }).error(function(data, status, headers, config) {


    });

}]);
我添加了标题,但它似乎无法解决我的跨来源问题。有谁能给我一些关于如何从其他服务器获得响应的评论和建议。
提前感谢。

必须在服务器上启用CORS。如果您无法访问该服务器,则可能无法完成希望的操作。如果您确实有访问权限,则需要详细了解如何为编写api的任何语言启用它:)


有关更多信息,请参见此处:

CORS是一种服务器解决方案-也就是说,web客户端(JS)发送到不同域(因此跨域)的第一个请求是一个选项请求-由源服务器以天气或不考虑跨域请求的方式答复,如果是,则回答:

   "Access-Control-Allow-Origin": "*",
   "Access-Control-Allow-Methods": "POST, GET, OPTIONS, PATCH, DELETE",
   "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept"
然后,浏览器发送另一个请求——即本应发送的实际请求。 整个机制是自动发生的。您所要做的就是在服务器上启用CORS。 要启用CORS,以下是一些有用的链接:


我明白了,但我无法访问我的服务器,是否可以在htaccess中执行此操作?@caffeineshots您可以使用JSONP或其他方式吗?您是指web服务器上的htaccess还是api服务器上的htaccess?htaccess在我的本地文件夹中,会有帮助吗?出于某种原因,我不想使用jsonp。@Caffineshots不,这是一个必须在提供API的服务器上进行的服务器设置。您可以尝试从服务器调用API,然后从您自己的API向您的客户端提供相同的数据,如果他们允许(代理他们的API),我看到了。问题是我的客户端只想单击index.html文件并查看结果。你知道在这种情况下我的解决办法是什么吗?