我有睡衣和Django通過Apache2與Windows 7上的mod_wsgi運行。我不相信我從這些東西的設置中獲得問題,但:唯一的事情那是行不通的是試圖從睡衣生成的窗體中發佈信息。試圖在我的應用程序中使用睡衣生成的表單產生403s(「CSRF驗證失敗」錯誤頁面)。睡衣+ Django => CSRF混淆,403錯誤
我已經花了數小時的時間閱讀所有關於CSRF和睡衣的答案,並且做了很多關於CSRF和Django,Django和Ajax等的外部研究。如果這個問題沒有解決沒有人知道在這種情況下應該怎麼做,我想我已經削弱了這個問題的本質。
如何將{% csrf_token %}
加入睡衣生成表單中?這似乎可能是不可能的,因爲從我所瞭解的CSRF令牌不是永久性的,睡衣生成的頁面是...我的睡衣頁面是從睡衣.py
文件生成的,導致文件夾中充滿了硬編碼的東西。我如何將當前CSRF令牌整合到已經編碼的表單中?
請不要猶豫,要求更多的細節,這個問題已難以置信地難以駕馭。沒有發佈有關整合睡衣& Django的信息。我發現的唯一解決方案似乎意識到在Django中的CSRF,說你應該只是禁用CSRF保護(我可以使用或,但是我可以用什麼保護來替代它?我自己的cookie系統?它是一個可怕的想法在任何情況下禁用CSRF保護?)。
謝謝!
好的,我知道我會在編譯之前將相關的Javascript添加到
.py
睡衣文件中。但是你提供的鏈接似乎是jQuery特有的,並且作爲一個對JavaScript(以及擴展的jQuery)知之甚少的人,我不確定我會如何適應jQuery獨立...這聽起來就像正確的解決方案一樣,但是jQuery依賴於那個答案中的代碼,你知道嗎? – hangtwenty我自己並不是一個JavaScript高手,將jQuery放入你的頁面或者至少下載非縮小版本並提取'trim'函數會更容易。這可能是一些微不足道的事情,比如從字符串的開頭和結尾刪除空格。你想從答案中找到的部分是'getCookie(name)'函數。然後你可以使用getCookie('csrftoken')'獲取cookie數據,並將它作爲一個隱藏字段添加到你的表單中(無論如何,這就是所有'{%csrf_token%}'模板)。 –
好吧,那看起來就像是門票,而且我敢肯定,如果我能讓Django以合理的方式提供相關的睡衣頁面,但我厭倦了盜用Django的URL接口來獲得睡衣甚至顯示正確...太多的挫折和沒有足夠的文件繼續這個睡衣的事情。似乎沒有與Django集成時它可能很酷,但關於該集成的文檔非常缺乏。我將完全切換到jQuery。謝謝你的時間! – hangtwenty