//ShowAllTasksFunc is used to handle the "/" URL which is the default ons
func ShowAllTasksFunc(w http.ResponseWriter, r *http.Request){
if r.Method == "GET" {
context := db.GetTasks("pending") //true when you want non deleted notes
if message != "" {
context.Message = message
}
context.CSRFToken = "abcd"
message = ""
expiration := time.Now().Add(365 * 24 * time.Hour)
cookie := http.Cookie{Name: "csrftoken",Value:"abcd",Expires:expiration}
http.SetCookie(w, &cookie)
homeTemplate.Execute(w, context)
} else {
message = "Method not allowed"
http.Redirect(w, r, "/", http.StatusFound)
}
}
Requests
और ResponseWriter
के बीच एक बुनियादी अंतर नहीं है, एक अनुरोध क्या एक ब्राउज़र
तरह भेजेंगे
Host: 127.0.0.1:8081
User-Agent: ...
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://127.0.0.1:8081/
Cookie: csrftoken=abcd
Connection: keep-alive
और एक प्रतिक्रिया हैडलर , भेज देंगे कुछ की तरह:
Content-Type: text/html; charset=utf-8
Date: Tue, 12 Jan 2016 16:43:53 GMT
Set-Cookie: csrftoken=abcd; Expires=Wed, 11 Jan 2017 16:43:53 GMT
Transfer-Encoding: chunked
<html>...</html>
ब्राउज़र एक अनुरोध कर देगा है, यह कि डोमेन के लिए कुकी शामिल करेंगे,, यदि आप सेट के बाद से कुकीज़ डोमेन बुद्धिमान जमा हो जाती है और पार डोमेन से पहुँचा नहीं जा सकता एक कुकी केवल HTTP के रूप में तब इसे केवल उस वेबसाइट से एक्सेस किया जा सकता है जो इसे HTTP के माध्यम से सेट करता है और जेएस के माध्यम से नहीं।
तो जब कुकीज़ से जानकारी प्राप्त आप r.Cookie विधि से ऐसा कर सकते हैं, इस
cookie, _ := r.Cookie("csrftoken")
if formToken == cookie.Value {
https://github.com/thewhitetulip/Tasks/blob/master/views/addViews.go#L72-L75
की तरह लेकिन जब आप एक कुकी सेट करने जा रहे हैं, तो आप इसे क्या करना है प्रतिक्रिया लेखक विधि में, अनुरोध केवल पढ़ने वाला ऑब्जेक्ट है जिसे हम जवाब देते हैं, इसे किसी टेक्स्ट से प्राप्त टेक्स्ट संदेश के रूप में सोचते हैं, यह एक अनुरोध है, आप केवल इसे प्राप्त कर सकते हैं, जो आप टाइप करते हैं वह एक प्रतिक्रिया है, इसलिए आप
पर एक कुकी में टाइप कर सकते हैं विवरण: https://thewhitetulip.gitbooks.io/webapp-with-golang-anti-textbook/content/content/2.4workingwithform.html
धन्यवाद।ऐसा लगता है कि काम करता है। मैं गलती से http://golang.org/pkg/net/http/#Request.AddCookie को देख रहा था – Tech163
हाँ यह उलझन में है। आपको Request.AddCookie की आवश्यकता होगी यदि आपका गो प्रोग्राम HTTP क्लाइंट के रूप में कार्य करता है और आप HTTP सर्वर पर कुकी मान भेजना चाहते हैं ... –