当前位置: 首页 > 面试题库 >

Web套接字使ajax / CORS过时了吗?

夔庆
2023-03-14
问题内容

当在所有Web浏览器中使用Web套接字时,Ajax是否会过时?

如果我可以使用Web套接字实时获取数据并更新数据,为什么会需要ajax?即使我在应用程序启动时仅使用ajax来获取数据一次,我仍然可能想查看一段时间后该数据是否已更改。

Web套接字是否可以在跨域中使用或仅起源于同一域?


问题答案:

WebSockets不会完全淘汰AJAX,而WebSockets可以跨域。

AJAX

AJAX机制可以与普通Web服务器一起使用。在最基本的层次上,AJAX只是网页发出HTTP请求的一种方式。WebSockets是一个较低级别的协议,并且需要WebSockets服务器(内置于Web服务器,独立服务器或从Web服务器代理至独立服务器)。

使用WebSockets,帧和有效负载由应用程序确定。您可以在客户端和服务器之间来回发送HTML / XML / JSON,但是您不必这样做。
AJAX是HTTP 。WebSockets具有HTTP友好握手,但 WebSockets不是HTTP
。WebSockets是一种双向协议,它比HTTP更接近原始套接字(有意地)。WebSockets有效负载数据在标准的当前版本中采用UTF-8编码,但是在将来的版本中可能会更改/扩展。

因此,即使在所有客户端都原生支持WebSocket的世界中,也可能总会有AJAX类型请求的位置。WebSockets正在尝试解决AJAX不具备能力或具备少量能力的情况(因为WebSockets是双向的且开销较低)。但是WebSocket并不能替代AJAX的所有用途。

跨域

是的
,WebSockets支持跨域。建立连接的初始握手传达了源策略信息。Wikipedia页面显示了典型握手的示例:http
:
//en.wikipedia.org/wiki/WebSockets



 类似资料:
  • 我尝试了我在互联网上找到的每一个解决方案,现在我只是卡住了 这是我的Spring boot App_控制器: 这里是我的corsConfiguration: 以下是我的WebSocketConfiguration: 最后,这里是我连接此WebSocket的函数: 我试图添加@CrossOrigin(origins=“*”)和@CrossOrigins(origins=”)http://localh

  • 我在使用https域和https套接字io时收到此警告。 我的代码是这样的: 希望有答案来解决这个问题。我已经从其他人那里搜索过,但我申请时发现不起作用。

  • 目前,我支持具有以下体系结构的客户机,用于工业制造过程: 我已经在PC上设置了一个WAMP服务器和一个示例网页,我可以在PC上的任何浏览器上看到它作为“本地主机”。我知道如何通过WebView类向Android应用程序添加web浏览器视图。 但是我不知道如何让手机上的浏览器通过TCP连接看到PC上的WAMP服务器。我怎么把这两件事联系起来?

  • Cross-origin resource sharing (CORS)是一种允许来自Web浏览器中其他域的受限资源的机制。 假设,如果你点击html5演示部分中的HTML5- video player 。 它会要求相机许可。 如果用户允许该权限,则只有它会打开相机,否则它不会打开相机用于Web应用程序。 发出CORS请求 这里Chrome,Firefox,Opera和Safari都使用XMLHt

  • 开始使用akka-streams,我想构建一个简单的示例。在chrome中,使用web套接字插件,我可以通过并发送2个命令,简单地连接到这样的流https://blockchain.info/api/apiwebsocket 将在chromes web socket插件窗口中传输结果。 我试图在akka流中实现相同的功能,但面临一些问题: 执行了2个命令,但我实际上没有获得流输出 同一命令执行两次

  • 我已经创建了一个web socket来接收单个消息,它将进行一些处理并将响应消息返回给客户端。我已经使用Play框架创建了web socket。下面给出了代码片段。 代码片段: 我已经测试了我的web套接字从http://www.websocket.org/echo.html.我连接了我的web套接字,并按顺序传递了三个消息,分别是“1”、“2”和“3”。我在传递这些消息时得到了下面的响应。 we