我一直认为if语句基本上比较了它的类似的论点== true.然而,Firebug中的以下实验证实了我最担心的事情 - 在写了15年的Javascript之后我仍然没有线索WTF正在进行:
>>> " " == true
false
>>> if(" ") console.log("wtf")
wtf
Run Code Online (Sandbox Code Playgroud)
我的世界观在这里一片混乱.我可以运行一些实验来了解更多信息,但即使这样,我也会因为害怕浏览器怪癖而失眠.这是某个规格吗?它是否一致的跨浏览器?我会掌握javascript吗?
所以我生成了一个可能很长的 JSON 字符串,用于 Sendgrid 的 SMTP API。因为它是一个 SMTP 标头,所以它应该有一个最大行长度(推荐 72,但绝对不超过 1000)。末尾的文档中描述了一种简单的解决方案:
http://docs.sendgrid.com/documentation/api/smtp-api/developers-guide/
他们建议这样做:
$js =~ s/(.{1,72})(\s)/$1\n /g;
Run Code Online (Sandbox Code Playgroud)
但我不喜欢那样,因为它可能会在空格有意义的字符串中拆分。此外,当空间很少且距离很远时,性能似乎非常糟糕。
现在我正在使用 Ruby,我可以执行以下操作:
JSON.generate(@hash, options)
Run Code Online (Sandbox Code Playgroud)
在http://flori.github.com/json/doc/classes/JSON.html#method-i-generate 中记录的选项提供了不同的格式选项。但是这些都没有给我我想要的,这是每隔一段时间带有换行符的简洁 JSON。
有任何想法吗?
Rails AuthenticityToken自动保护来自CSRF攻击的POST/PUT/DELETE请求.但我还有另一个用例.
我正在我的网站上显示一个视频,我不想在其他网站上嵌入.这是如何工作的,我的Flash播放器从我的CDN发送一个签名URL请求,该请求将在几秒钟后到期.到目前为止,用户必须登录才能观看视频,因此这是身份验证.但是现在我希望网站的任何访问者都能够观看视频,而不允许从其他网站请求签名的URL(例如,如果他们将我们的播放器嵌入他们的网站).
我的第一个想法是AuthenticityToken,因为它似乎有这些确切的语义......我需要做的就是将它插入GET请求.有任何想法吗?
我正在尝试调试在 Elastic Beanstalk 上运行的 Node 应用程序的问题。该问题仅在 EB 下出现,我无法在开发机器上重现,即使在本地使用生产配置运行时也是如此。
与其他 EB 平台不同,Node 平台似乎真的不遗余力地隐藏 Node bin/ 路径,因此您无法从 shell 运行 npm 或 node 命令。我意识到您通常不希望在 EB 下以这种方式操作,但我还需要一个比等待 5 分钟让 EB 部署来测试每一个小调整更短的调试反馈循环。
有许多安全原因导致人们想要删除没有响应的HTTP连接(例如,OWASP的SSL最佳实践).如果可以在服务器级别检测到这些,那么这没什么大不了的.但是,如果您只能在应用程序级别检测到这种情况呢?
Rails,或者更普遍的Rack,是否有任何标准方法告诉服务器在没有响应的情况下断开连接?如果没有,是否有一些标准的标题可以在常见的Web服务器中实现(我在想Nginx或Apache)?即使没有标准头,是否有合理的方法来配置该行为?这是傻瓜的差事吗?