为了账号安全,请及时绑定邮箱和手机立即绑定

与完整的用户输入共享当前的 html 响应(原样)

与完整的用户输入共享当前的 html 响应(原样)

Go
鸿蒙传说 2022-05-05 16:00:51
我正在尝试实现类似于 Go Playgroundshare按钮的功能。单击调用share的按钮时,当前的 HTML 响应将保存到文件中。这还包括用户可以看到的所有内容。到目前为止我能做的 - 我可以成功地将 HTML 页面保存到文件中。- 我可以使用 HTTP Get 从 URL 获取并保存整个页面。注意事项- 我无法保存我正在处理的当前网页。到目前为止,这是我获取远程 URL 的代码:func HTTPGet(url string, timeout time.Duration) (content []byte, err error) {    request, err := http.NewRequest("POST", url, nil)    if err != nil {        return    }    ctx, cancel_func := context.WithTimeout(context.Background(), timeout)    request = request.WithContext(ctx)    response, err := http.DefaultClient.Do(request)    if err != nil {        return    }    defer response.Body.Close()    if response.StatusCode != 200 {        cancel_func()        return nil, fmt.Errorf("INVALID RESPONSE; status: %s", response.Status)    }    return ioutil.ReadAll(response.Body)}希望这不会涉及手动弄乱 DOM。
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

在客户的配合下,有几种方法可以做到这一点。

如果您想保存当前显示给客户端的网页(使用当前表单值等),您必须在客户端使用 Javascript 来执行此操作。您可以获取文档,以某种形式对其进行序列化,然后将其发送到服务器进行保存。

另一种方法是在服务器端再次生成 HTML 页面,但不包含用户输入的数据,或任何在客户端动态生成的 HTML。

另一种方法是在客户端使用 Javascript 收集页面状态,包括表单值和表示任何动态生成的内容的数据,将其发送到服务器进行保存,并根据需要重建页面。


查看完整回答
反对 回复 2022-05-05
  • 1 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号