2012-02-28 59 views
1

是否有像php setcookie這樣的功能。如果不是那麼如何?如何用雅司餅乾設置餅乾

編輯:

yaws_api:setcookie("lang","lang_value", "/"), 
yaws_api:find_cookie_val("lang", (A#arg.headers)#headers.cookie), 

find_cookie_val返回空字符串,因爲setCookie方法didnt設置coockie。

+0

你嘗試在你喜歡的搜索引擎的搜索中鍵入您的問題標題框?這給了什麼結果?你有什麼具體問題? – Mat 2012-02-28 14:30:06

+0

@Mat,是的,我做了,但不能讓它工作,我的代碼寫入問題帖子。 – Yola 2012-02-28 14:53:57

+0

你真的有這樣的代碼嗎?最有可能的cookie不能在您設置的相同請求中查詢。但應該可以在隨後的請求中找到。 – Mat 2012-02-28 14:58:33

回答

1

該網站提供了一些示例代碼,雅司病,設置cookies: http://yaws.hyber.org/cookies.yaws

+1

但@Baxter是正確的,cookies.yaws頁面上的代碼正確地解釋瞭如何做到這一點。你不需要直接設置Set-Cookie頭,只需使用yaws_api:set cookie。 – 2012-02-29 03:59:08

2

最後我做到了通過HTTP標頭:

out(A) -> 
% read 
    yaws_api:find_cookie_val("lang", (A#arg.headers)#headers.cookie), 

% send to browser 
    [{header,["Set-Cookie:","lang=ruler;","expires="++to_cookie_expire(60*60*24*30)++";"]}, 
    {html, ...}] 
end. 

to_cookie_expire(SecondsToLive) -> 
    Seconds = calendar:datetime_to_gregorian_seconds(calendar:local_time()), 
    DateTime = calendar:gregorian_seconds_to_datetime(Seconds + 
    SecondsToLive), httpd_util:rfc1123_date(DateTime). 
+0

你爲什麼這樣做?使用您可以在Chrome調試控制檯 - >網絡中測試的yaws_api:set_cookie(名稱,值,選項),然後單擊該請求,然後單擊「cookie」選項卡,即可找到請求和響應cookie。 – Aus 2016-08-04 15:28:37

+0

此外,它可能是你使用舊的雅司版本。充滿了錯誤。升級到最新。 – Aus 2016-08-04 15:29:16

+0

忘記我的第一條評論,實際上,如果您使用yaws_api:set_cookie/3,則無法在響應中添加更多內容,如json或html。我希望我做錯了什麼,因爲這是不切實際的。 – Aus 2016-08-05 15:47:25