【问题标题】:send from client side to google apps script (server) base64 string从客户端发送到谷歌应用程序脚本(服务器)base64 字符串
【发布时间】:2017-07-18 20:18:37
【问题描述】:

我有这个 base64 字符串,它代表我需要发送到服务器的图片。所有 ajax 请求只是将数据附加到查询字符串以通过 url 发送到服务器,并且查询字符串/url 类型的限制为 2,000 个字符。那么我的 base64 字符串大约有 97,000 个字符,那么我该如何将这个东西传送到服务器上呢?

POST - 这将使用 url 并限制为 2000 个字符...对吗? GET - 与 post 相同...对吗?

我还能做什么?将其转换为 blob?如果你知道你在做什么,你会怎么做..因为我不喜欢大声笑

感谢您的宝贵时间!

【问题讨论】:

    标签: javascript http web network-programming client


    【解决方案1】:

    我更喜欢使用 FormData 对象,它非常简单,你可以找到干净流畅的教程here

    【讨论】:

    • 据我所见,这种策略将数据(从表单数据转换为 url 的键值对字符串)“序列化”为查询字符串,这是 url 的一部分,这是问题所在 -我无法请求 90,000 个字符的网址。还是我完全错了
    【解决方案2】:

    使用json发布数据:

    fetch('url', {
      method: 'post'
      headers: new Headers({'Content-Type': 'application/json'}),
      body: JSON.stringify({'payload': 'base64str'})
    })

    【讨论】:

    • 我收到了这个错误Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 405. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
    • 我可以禁用 CORS,我现在正在寻找如何做到这一点
    • @CotyEmbry 你需要使用 init { mode: 'cors' }。在服务器端,这取决于您使用的后端,但您需要为域启用 cors 并允许标头“Content-Type”和“Access-Control-Allow-Origin”。
    • 如何在响应对象中为域启用 cors 并更改这些标头?就像在响应对象上设置这些标头一样,就像在请求对象上设置标头一样,或者还有更多内容吗?另外,我的部分问题是我的后端是/是谷歌应用程序脚本,所以我猜它在谷歌云中执行?虽然我不是 100%
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 2016-09-11
    • 2012-09-24
    • 1970-01-01
    相关资源
    最近更新 更多