gpt4 book ai didi

javascript - 如何在渲染页面之前在服务器端执行 api 请求?

转载 作者:行者123 更新时间:2023-12-02 17:19:46 24 4
gpt4 key购买 nike

我的页面上有一个 JS 脚本,它在页面加载时调用 Y 服务器并显示一些数据。如果您查看页面源代码,您可以看到脚本调用 Y 服务器。

我需要做的是从我的服务器向 Y 服务器发出 api 请求,并将页面渲染到客户端,无需 JS 脚本即可完成。因此,如果您查看页面源代码,您将看不到任何对 Y 服务器的引用,因为在页面呈现给客户端之前,这一切都在我的服务器后台发生。

有人知道如何完成此设置吗?正在寻找指导...文档链接?如有不清楚之处,请要求澄清。

最佳答案

在较高层面上,您需要:

  1. 为 API 实现 HTTP 客户端
  2. 添加调用 API 的代码(可能在 Controller 中,但也可以是帮助程序、模型或服务对象)
  3. (可选)解析响应(这取决于响应的格式以及您需要的格式)
  4. 在 View 中渲染解析后的响应

2 和 4 很简单。 3 将取决于你,除非你能提供具体的例子。不过,这应该很容易。剩下 1。

如果您使用的是流行的 API,那么很有可能 client has already been written 。如果是内部的东西,您可以使用 Net::HTTP 或其他之一编写自定义的东西 popular HTTP client libraries 。只要您不需要从浏览器发送任何 cookie/ header ,这应该很容易。

这是一个使用 RestClient 看起来如何的简单示例以及返回 HTML 的 API。

class SampleController < ApplicationController
def index
@mydata = RestClient.get('http://path.to/your/api?with=params')
end
end

# /app/views/index.html.erb
<h1>Here's Your Data</h1>
<%= raw @mydata %>

关于javascript - 如何在渲染页面之前在服务器端执行 api 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24072090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com