JavaScript 可以与不同的服务器通信吗?

MRo*_*lin 5 javascript ajax client-server client-side

JavaScript 可以与位于不同服务器上的数据库交互吗?

即涉及三台计算机

  • 服务器:提供带有 JavaScript 的 HTML 页面
  • 客户端:运行想要与之交谈的页面
  • 第二个服务器:向客户端发送数据或从客户端接收数据

这是否违反同源政策?如果不是为什么不呢?如果是这样,有办法解决吗?

我的背景 - 我是一名称职的计算机科学家,但我从未处理过客户端编程。在回答时,请随意使用复杂的想法,但请假设我对 JavaScript 语言或客户端编程背后的具体策略一无所知。

tob*_*ies 4

每当您的 html 来自服务器 1 并且 AJAX 请求转到服务器 2 时,它就会违反同源。

查看跨源资源共享。这是一个专门为处理这种情况而设计的标准。它在大多数现代浏览器中实现。

或者,您可以使用JSONP来提供数据,或者如果您无法控制第二个服务器,请使用反向代理通过第一个服务器将请求代理到第二个服务器。