我正在寻找一种在我的URL散列中存储一些javascript变量的方法.我的目标是允许用户使用书签恢复Web应用程序的特定状态.
在我看来,一种方法可能使用JSON序列化.即,我会存储我的变量
var params = { var1: window.val1, var2: window.val2 }
window.location.hash = JSON.stringify(params)
Run Code Online (Sandbox Code Playgroud)
并像这样恢复它们
var paramStr = window.location.hash.substring(1) // substring removes the initial "#"
var params = JSON.parse(paramStr)
window.var1 = params.var1
window.var2 = params.var2
Run Code Online (Sandbox Code Playgroud)
这似乎是做我想要的最简单,最简洁的技术.我很容易理解,并且它使用的代码行数少于例如这个流行的SO建议.但是,它也感到不安全.恶意用户可以将任意代码写入URL,我的应用程序将执行它.这看起来很危险,但我对网络编程很陌生,所以我不知道这有多大.
我上面概述的用于存储变量的技术是否可以window.location.hash安全使用?如果没有,为什么不呢?可能发生的最坏情况是什么?
我在XCode中有一个C ++项目,该项目建立了一个静态库。我想向项目添加一个主要方法,以允许我测试库中的某些代码。
为了做到这一点,我首先复制了项目的目标,然后将一个main方法添加到了第二个目标(根据此答案)。但是,当我构建并运行这个新目标时,我的main方法没有执行。
有人知道我在做什么错吗?
我正试图从表中拔出一列.该命令似乎失败了,因为我的列名是在camel case(practiceType)中.这是我的错误,模型和架构:
> Task.pluck 'practiceType'
(0.5ms) SELECT practiceType FROM "tasks"
PG::Error: ERROR: column "practicetype" does not exist
LINE 1: SELECT practiceType FROM "tasks"
^
: SELECT practiceType FROM "tasks"
ActiveRecord::StatementInvalid: PG::Error: ERROR: column "practicetype" does not exist
Run Code Online (Sandbox Code Playgroud)
task.rb
class Task < ActiveRecord::Base
attr_accessible :name, :practiceType
[...]
Run Code Online (Sandbox Code Playgroud)
schema.db
create_table "tasks", :force => true do |t|
t.string "name"
t.string "practiceType"
[...]
Run Code Online (Sandbox Code Playgroud)
正确的解决方案可能是将列名转换为蛇形,但我更愿意避免这种情况,因为我担心会破坏我的应用程序.是否有一个快速而肮脏的解决方案可以让我的查询运行?
可能重复:
Ruby中的|| =(或等于)是什么意思?
在互联网上,我在Ruby/Rails中看到了以下语法:
user ||= User.new
Run Code Online (Sandbox Code Playgroud)
我是新手,我无法解析这个问题.有人可以向我解释"|| ="运算符的作用吗?
ruby ×2
activerecord ×1
ajax ×1
c++ ×1
javascript ×1
json ×1
postgresql ×1
sql ×1
xcode ×1
xcode4.3 ×1