Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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
Java 不允许原始标头值。即使URL是允许的_Java_Spring_Spring Boot_Cross Domain - Fatal编程技术网

Java 不允许原始标头值。即使URL是允许的

Java 不允许原始标头值。即使URL是允许的,java,spring,spring-boot,cross-domain,Java,Spring,Spring Boot,Cross Domain,我在网站上看到了与此类似的其他问题,尽管做了这些决议,我的问题仍然是一样的 另外,我还尝试了setHeader(clientOrigin) 我使用的是Spring Boot v1.2.7.RELEASE,Spring控制台告诉我不允许原始标头值。我的委托人带着403枪回来了 克斯菲尔特 请求头 响应头 我尝试进行的调用是SocketJS调用,它是get调用。正在调用以下脚本 var socket = new SockJS($scope.siteUrl+'/connect?TOKEN='+$loc

我在网站上看到了与此类似的其他问题,尽管做了这些决议,我的问题仍然是一样的

另外,我还尝试了
setHeader(clientOrigin)


我使用的是Spring Boot v1.2.7.RELEASE,Spring控制台告诉我不允许原始标头值。我的委托人带着403枪回来了

克斯菲尔特 请求头 响应头 我尝试进行的调用是SocketJS调用,它是get调用。正在调用以下脚本

var socket = new SockJS($scope.siteUrl+'/connect?TOKEN='+$localstorage.get('X-AUTH-TOKEN-TRIVIA'));
    $scope.stompClient = Stomp.over(socket);
    $scope.stompClient.connect({"Authorization":"TOKEN" }, function(frame) {
        console.log('Connected: ' + frame);
        stompClient.subscribe($scope.siteUrl+'/socketupdate', function(greeting){
            $scope.activegame = JSON.parse(greeting.body).content;
        });
    });
如您所见,我将令牌作为查询字符串传递,因为出于某种奇怪的原因,SocketJS不允许我通过标头传递X-AUTH-token

但是,我的客户端服务器位于不同的端口上。我正在利用ionic构建一个应用程序,这是一个基于角度的框架

我注意到错误来自我的WebSocketService

2015-11-29 03:22:32.417  WARN 33932 --- [nio-8080-exec-1] o.s.w.s.s.t.h.DefaultSockJsService       : Origin header value 'http://192.168.1.66:8105' not allowed.

这是否意味着我必须在WebSocketConfig中设置一些东西,以便在
WebSocketConfig.java

@Override
public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
    stompEndpointRegistry.addEndpoint("/ws").setAllowedOrigins("*").withSockJS();
}
注意:

.setAllowedOrigins("*")

我刚找到的东西,我想它可能会帮助别人。 您的url结尾不能有“/”

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/chat")
            .setAllowedOrigins("https://somewebsite.com/")
            .withSockJS();
}
不起作用

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/chat")
            .setAllowedOrigins("https://somewebsite.com")
            .withSockJS();
}

有效。

是什么告诉你这是一个非法请求(我猜是firefox)的?该请求是哪种方法?顺便说一句,如果你使用的是最新版本的spring(4.2),你只需要添加到你想要允许的方法中。我使用的是spring Boot v1.2.7.RELEASE,但不确定哪一版本的spring包含在其中。Spring在服务器上的控制台中告诉我这一点,它返回403。此外,我没有看到@Crossorigin的注释。注释要求启动1.3或将框架版本升级到4.2,1.2启动版本默认使用spring 4.1。我还没有用spring Boot测试过这一点,但您可以使用此库向4.2之前的spring版本添加CORS支持:我明白您的意思。但据我所知。我想
response.addHeader(“访问控制允许来源”,clientOrigin)应该达到相同的目标。它几乎可以找到源url并提供访问权限。如果不是这样的话,那么我不应该允许从CORSFilter的交叉来源吗?我还更新了我的帖子,加入了我用来调用的SOCKJS java脚本。当我添加代码`stompEndpointRegistry.addEndpoint(“/stomp”).setAllowedOrigins(*”).withSockJS()`任何对“/stomp”的请求都有效,但是“/stomp/info”给出403,有什么想法吗?在你的Web安全配置中,检查antMatcher是否如下所示:“/stomp/**”而不仅仅“/stomp”,以允许任何以/stomp开头的URL,而不仅仅是“/stomp”URL
.setAllowedOrigins("*")
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/chat")
            .setAllowedOrigins("https://somewebsite.com/")
            .withSockJS();
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/chat")
            .setAllowedOrigins("https://somewebsite.com")
            .withSockJS();
}