是唯一的方法来给客户从服务器执行一些js代码的指令?
或换句话说: 如何发送一个客户端的消息从服务器执行一些页面上的JS代码?
这不是一个Ajax请求,它是一个普通的GET
浏览器服务器请求。
比方说,我在我的应用程序的前端JavaScript文件中有这样的代码:
if( condition_1 ) { FB.getLoginStatus(...) } else if( condition_2 ) { PayPal.getLoginStatus(...) } else { do smth else... }
所以我想发送那些condition_1
或者condition_2
指令以及服务器的响应。 这不是Ajax请求。 这是从浏览器到服务器的简单的GET
请求。
目前只有cookies出现在我的脑海里。
1)服务器从浏览器收到GET请求。
2)我读了cookies。 如果没有一定的cookie伴随着请求,我设置condition_1
,否则我设置condition_2
cookie:
if(req.cookies["foo"] == "foo") { res.cookies("foo", "condition_1") .status(200) .send() .end(); } else if(req.cookies["foo"] == "bar") { res.cookies("foo", "condition_2") .status(200) .send() .end(); }
3)服务器发回一个200响应给客户端。
现在在浏览器中我检查这些cookie(为了简单起见,我做了document.cookie.foo
):
if( document.cookie.foo == 'condition_1' ) { FB.getLoginStatus(...) } else if( document.cookie.foo == 'condition_2' ) { PayPal.getLoginStatus(...) } else { do smth else... }
而我的问题是,cookies是这种情况下的唯一途径? 指示客户端代码执行某些条件
Cookies存储在浏览器中,并随每个请求一起发送回服务器。 它用于存储设置客户端,而不是从服务器发送信息。
如果您正在使用一些可以在响应中设置cookie的服务器端技术,那么为什么不使用它来发送要执行的脚本块呢?
你正在做的事情更复杂,他们需要:JavaScript提供eval
。
服务器可以简单地用一个expression式/语句回答一个string来在浏览器上下文中进行评估。 它不是在与Lisp相同的层次上开发的,但是即使在Javascript中,“数据”也可以直接“编码”(不需要像Java或C ++那样编写解释器来提高逻辑级别) 。