【问题标题】:send unescaped string with XHR (javascript)使用 XHR (javascript) 发送未转义的字符串
【发布时间】:2013-10-06 02:22:07
【问题描述】:

我有包含 javascript 文件内容的字符串,我需要将其上传到服务器(它不是服务器端代码的一部分 - 它仅用于开发(现场代码编辑)过程,因此安全性并不重要)。 PHP 脚本使用filecontent 变量。我发现只有 xhr.send() 参数是标准 GET 格式的字符串(var1=sth&var2=sthelse)的实现,但我想在服务器端不进行任何编码/解码/转义/取消转义的情况下发送此字符串。因为它是 js,它包含所有可能的字符,包括 '&' 或 '='。

除了使用标准查询之外,是否可以通过其他方式将数据传递给 POST?

我对 jQ 解决方案不感兴趣

【问题讨论】:

  • 不。 (php 将 POST 公开为一个排序的关联数组,这不是你想要的)

标签: javascript post xmlhttprequest


【解决方案1】:

在查询字符串参数中发送 JS 文件内容不是一个好主意。几点:

  • 如果您的情况支持 HTML5,您可以send files to your server with JS
  • 如果您不想作为文件上传发送,我会将其作为 POST 数据发送。
  • 在客户端上编码或转义的任何数据都可以在服务器上解码或取消转义。在某些设置中,这会自动为您完成。如果这是处理数据的正确方法,则没有理由避免这种情况。

【讨论】:

  • 就像我的意思 - 我在网站上嵌入了 js 代码编辑器(Ace 代码编辑器) - 我的网站正在从服务器下载文件 - 然后当我打开编辑器时,它会设置 DEBUG 标志并在它之后当我重新加载时 - 它不会从服务器加载文件,而是从 localStorage 加载文件(当我损坏代码时,它会从服务器加载回退)所以下班后我想将修改后的 js 从 localStorage 上传到服务器上的文件 - 转义 js文件会强烈影响上传大小
  • 谁在乎上传大小,你需要把文件放在那儿,任何文件,一个片段,编码是确保发生这种情况的唯一方法。您是否上传了如此多的编辑,以至于带宽是一个实际问题?这将是您难以置信的编辑量!您可以在base64编码之前对数据进行DEFLATE,基于文本的文件的结果通常会小于orig,即使在base64之后也是如此......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多