Clojurescript Websockets带有Sente 403错误
我正在尝试从本地主机上的两个不同端口设置web套接字连接。我用的是Sente和Immutant。我有以下内容,但在尝试连接时返回403禁止 Server.cljClojurescript Websockets带有Sente 403错误,websocket,clojure,clojurescript,immutant,sente,Websocket,Clojure,Clojurescript,Immutant,Sente,我正在尝试从本地主机上的两个不同端口设置web套接字连接。我用的是Sente和Immutant。我有以下内容,但在尝试连接时返回403禁止 Server.clj (defn handler "Comment" [] "<h1>Hello World</h1>") (let [{:keys [ch-recv send-fn connected-uids ajax-post-fn ajax-get-or-ws-handshake-fn
(defn handler
"Comment"
[]
"<h1>Hello World</h1>")
(let [{:keys [ch-recv send-fn connected-uids
ajax-post-fn ajax-get-or-ws-handshake-fn]}
(sente/make-channel-socket! (get-sch-adapter) {})]
(def ring-ajax-post ajax-post-fn)
(def ring-ajax-get-or-ws-handshake ajax-get-or-ws-handshake-fn)
(def ch-chsk ch-recv) ; ChannelSocket's receive channel
(def chsk-send! send-fn) ; ChannelSocket's send API fn
(def connected-uids connected-uids) ; Watchable, read-only atom
)
(defroutes app
"The router."
(GET "/" [] (handler))
(GET "/chsk" req (ring-ajax-get-or-ws-handshake req))
(POST "/chsk" req (ring-ajax-post req))
(route/not-found
"<h1>Page not found</h1>"))
(def my-app
(-> app
;; Add necessary Ring middleware:
ring.middleware.keyword-params/wrap-keyword-params
ring.middleware.params/wrap-params))
(def wrapped
(wrap-cors my-app :access-control-allow-origin [#".*"]
:access-control-allow-methods [:get :put :post :delete]))
(defn -main
"Start the server"
[& args]
(immutant/run wrapped {:host "localhost" :port 8080 :path "/"}))
这会在尝试连接时抛出403个错误。我不知道为什么会这样,我已经看了一段时间了,结果还是不够 我认为这就是CSRF防伪的问题: 这很重要。Sente有支持,但您需要使用诸如ring anti-forgery之类的中间件来生成和检查CSRF代码。应覆盖环ajax post处理程序(即受保护)
最后,他们展示了如何正确设置。我相信这就是CSRF防伪的问题: 这很重要。Sente有支持,但您需要使用诸如ring anti-forgery之类的中间件来生成和检查CSRF代码。应覆盖环ajax post处理程序(即受保护) 在句子中,他们展示了如何正确设置它
(let [{:keys [chsk ch-recv send-fn state]}
(sente/make-channel-socket! "/chsk" ; Note the same path as before
"sdasds" ; dummy
{:type :auto ; e/o #{:auto :ajax :ws}
:host "localhost:8080/"
}
)]
(def chsk chsk)
(def ch-chsk ch-recv) ; ChannelSocket's receive channel
(def chsk-send! send-fn) ; ChannelSocket's send API fn
(def chsk-state state) ; Watchable, read-only atom
)