【问题标题】:Escaping backslash inside javascript在javascript中转义反斜杠
【发布时间】:2015-11-20 09:18:18
【问题描述】:
<script type="text/javascript"> 
    console.log(#Fileurl#);
    jQuery.ajax({
        url: "http://xyz:8800/aaa/bbb/ccc",
        type:'POST',
        dataType: 'JSON',
        data:{"file":"#Fileurl#"},
        success: function(data) {
            console.log(data);
        }
    });
</script>

这是coldfusion页面中的javascript代码。如果我尝试在脚本之外打印“Fileurl”,输出是完美的。

输出:D:\abc\FLV\238550_605_orion.mp4。

但在 javascript 输出中,

D:abcFLV238550_605_orion.mp4。

实际上我们想发送 url 来删除特定的文件。非常感谢您的回复。

【问题讨论】:

  • 如果你解决了这个问题,你确定你能成功删除用户机器上的文件吗?我似乎记得这类事情缺乏权限问题。
  • 以前我们也可以这样做。但是我们将应用程序从动态 java 项目更改为 grails。所以我们想将资源 url 传递给特定的 grails 应用程序。

标签: javascript jquery json coldfusion


【解决方案1】:

您好,无法在 javascript 中执行此任务。所以不是

使用 ColdFusion 的 jsstringformatFileurl 转换为

D:\abc\FLV\238550_605_orion.mp4

console.log("<cfoutput>JSStringFormat(Fileurl)</cfoutput>");

【讨论】:

  • Perfect...outside javascript 我刚刚添加了 ..inside script used console.log("#jsString#") ....工作正常..谢谢。
  • 旁注,这里不需要#号:JSStringFormat(#Fileurl#)。
  • 谢谢@Leigh。在实践中我已经给出了,但这不是强制性的。非常感谢您改进它。
【解决方案2】:

如果您使用的是 ColdFusion 10+,则应使用 encodeForJavaScript() 而不是 JSStringFormat()。此外,通过将网络文件的路径放在客户端代码中,您将面临Path Traversal 攻击。

用户可以操纵 JavaScript 以指向与您想要的不同的文件和文件夹。如果您将其传递给删除函数,您可能会遇到麻烦。为什么不传递一些文件 ID?

【讨论】:

  • 是的。从我嘴里说出来的话!
【解决方案3】:

反斜杠有特殊含义,你必须避开它。您可以尝试将反斜杠加倍,或使用正确的 url 格式,例如带有正斜杠的 file://path/to/file。

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 2012-10-03
    • 2015-03-29
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    相关资源
    最近更新 更多