首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SockJS如何创建iframe

SockJS如何创建iframe
EN

Stack Overflow用户
提问于 2018-09-22 21:51:28
回答 1查看 2.3K关注 0票数 1

我在我的网站上使用SockJS,并且我使用端点/msg

当我转到mysitename.com/msg/iframe.html时,它会显示这个页面:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script>
    document.domain = document.domain;
    _sockjs_onload = function(){SockJS.bootstrap_iframe();};
  </script>
  <script src="https://cdn.jsdelivr.net/sockjs/1.0.0/sockjs.min.js"></script>
</head>
<body>
  <h2>Don't panic!</h2>
  <p>This is a SockJS hidden iframe. It's used for cross domain magic.</p>
</body>
</html>

SockJS是如何做到这一点的?

EN

回答 1

Stack Overflow用户

发布于 2018-10-26 21:09:53

它位于后端spring websocket的org.springframework.web.socket.sockjs.support.AbstractSockJsService中。

例如:

代码语言:javascript
复制
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

private static final String SOCKJS_VERSION = "https://cdnjs.cloudflare.com/ajax/libs/sockjs-client/1.3.0/sockjs.min.js";

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
    config.enableSimpleBroker("/topic");
    config.setApplicationDestinationPrefixes("/app");
}

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/handler").setAllowedOrigins("*");
    registry
        .addEndpoint("/handler")
        .setAllowedOrigins("*")
        .withSockJS()
        .setClientLibraryUrl(SOCKJS_VERSION);
}

}

如果你关注setClientLibraryUrl,你会看到它是在哪里被解决的。

检查https://github.com/spring-projects/spring-framework/blob/master/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java

然后搜索“IFRAME_CONTENT”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52457299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档