【问题标题】:Server host and port for front-end JavaScript前端 JavaScript 的服务器主机和端口
【发布时间】:2015-06-25 19:22:24
【问题描述】:

我是一个新手网络开发人员,我根本不知道前端 javascript 是如何知道其各自服务器的主机和端口的。我从来没有告诉前端这些信息,但它只是默认知道——这是怎么回事?例如,我的前端 JavaScript 程序正在与位于 localhost:3000 的服务器通信。但是 JavaScript 代码中没有任何内容告诉程序服务器位于 localhost:3000。

正如一个答案所暗示的,它必须是默认值,因为该信息是在用户导航到 URL 时提供给浏览器的,因此它可能存储在 window.location 中。

正如一个答案所暗示的,如果您希望前端与不在您导航到的页面的 URL 上的服务器通信,您可能必须使用 CORS https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

【问题讨论】:

  • 你能举例说明你的意思吗?您是否想知道向/path/to/something 发出 AJAX 请求,以及 javascript 是如何知道转到 domain:port/path/to/something 的?还是别的什么?

标签: javascript web


【解决方案1】:

通过 Ajax 的浏览器只能连接到页面所在的相同地址。所以每个请求都发送到同一个服务器:页面来自的端口。

如果你想做一些花哨的事情,你需要迁移到 jsonp 或类似的。

【讨论】:

    【解决方案2】:

    web 的默认端口是 80。

    在您的服务器配置中,您可以设置此项。

    浏览器假定 http 的正确端口是 80。其他协议有不同的默认端口。

    你可以使用:指定你希望浏览器到达的端口,像这样-

    http://example.com:8080 - 将尝试访问网址的 8080 端口

    【讨论】:

      【解决方案3】:

      这是由于 javaScript 的 window.location 对象。

      window.location.hostname 提供主机名,例如 www.mysite.com

      window.location.port 提供端口名称

      window.location.protocol 提供使用的协议,例如 http:、https: 等

      window.locationobject 中还有其他属性。检查this

      这是你问的吗??

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-19
        • 1970-01-01
        • 2014-07-28
        • 2019-08-13
        相关资源
        最近更新 更多