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
Angularjs 无法加载XMLHttpRequesthttps://myserver1:8281/myurl/ext. 飞行前问题_Angularjs_Spring Mvc - Fatal编程技术网

Angularjs 无法加载XMLHttpRequesthttps://myserver1:8281/myurl/ext. 飞行前问题

Angularjs 无法加载XMLHttpRequesthttps://myserver1:8281/myurl/ext. 飞行前问题,angularjs,spring-mvc,Angularjs,Spring Mvc,我知道已经有人问过同样的问题来解决飞行前的问题,提供了很多解决方案,但我几乎都试过了,但都没有帮到我 我有一个用java编写的RESTAPI(Sprint),并在js中调用它。我的服务正在被呼叫,并且正在获得成功。我编写了java代码,我已经为重定向编写了代码,但方向没有发生,我在浏览器控制台中遇到以下错误: 无法加载XMLHttpRequest。对飞行前请求的响应未通过访问控制检查:“访问控制允许来源”标头包含多个值“*”,但只允许一个值 我尝试在标题中添加“Access Control Al

我知道已经有人问过同样的问题来解决飞行前的问题,提供了很多解决方案,但我几乎都试过了,但都没有帮到我

我有一个用java编写的RESTAPI(Sprint),并在js中调用它。我的服务正在被呼叫,并且正在获得成功。我编写了java代码,我已经为重定向编写了代码,但方向没有发生,我在浏览器控制台中遇到以下错误:

无法加载XMLHttpRequest。对飞行前请求的响应未通过访问控制检查:“访问控制允许来源”标头包含多个值“*”,但只允许一个值

我尝试在标题中添加“Access Control Allow Origin”:“*”,但仍然面临问题。还尝试在标头中允许的方法中添加选项

下面是我的js代码:

$scope.validateToken = function(){

        var config = {
            headers : {
                'ContentType': 'application/x-www-form-urlencoded',
                'Accept': 'application/json',
                'Pragma': 'no-cache',
                'Cache-Control': 'no-cache',
                'Expires': '-1',
                'X-Requested-By': 'test'
            },xhrFields: {
                'Access-Control-Allow-Origin':'*',
                'Access-Control-Allow-Headers' : 'Origin, X-Requested-With, Content-Type, Accept',
                'Access-Control-Allow-Methods' : 'GET,PUT,POST,OPTIONS'
                }
        };


    $http.get($scope.getUrl, {headers:{'token': $scope.ssoLinkData.token}}).success(function(data, status, headers, config){
    }).error(function (data, status, header, config) {
    $scope.ResponseDetails = "Data: " + data +
    "<hr />status: " + status +
    "<hr />headers: " + header +
    "<hr />config: " + config;
    });
在看到一些与此问题相关的帖子后,我在java代码中添加了标题信息。但这也无助于我


有人能帮我吗?提前感谢

您是否尝试过这样做:

myApp.config(['$httpProvider', function ($httpProvider){
   $httpProvider.defaults.headers.post = {}; //to override the $http post service, hence avoiding browsers encapsulation of post over OPTIONS
}]);

这将覆盖默认的飞行前请求,并将“选项”添加到您的API响应标题中应该可以解决此问题。

下面是我在浏览器控制台中遇到的完整错误:XMLHttpRequest无法加载。对飞行前请求的响应未通过访问控制检查:“访问控制允许来源”标头包含多个值“*”,但只允许一个值。因此不允许访问源代码“”。我遵循了以下URL,但没有帮助:我尝试了您建议的解决方案,但仍然遇到以下错误:XMLHttpRequest无法加载。对飞行前请求的响应未通过访问控制检查:“访问控制允许来源”标头包含多个值“*”,但只允许一个值。因此不允许对源“”进行访问。您使用的是哪台服务器?我也遇到了类似的问题,我不得不对tomcat服务器的web.xml进行更改。我使用Jboss作为后端代码,使用nginx作为前端代码
myApp.config(['$httpProvider', function ($httpProvider){
   $httpProvider.defaults.headers.post = {}; //to override the $http post service, hence avoiding browsers encapsulation of post over OPTIONS
}]);