2007-12-06
■ [biwascheme] Re:Re:biwascheme でXHR
POSTはLiveCodingのときに作ったので、
(define result (http-post "textgraph.cgi"
`(("text" . ,zu) ("format" . "sexp"))))
みたいにURLとalistを渡すことでPOSTできるようになりました (注:quasiquoteはまだ実装していないので、実際にはlistとconsでどうぞ…(´・ω・`))
というわけで、今は
- (http-request url) : GET
- (http-post url params) : POST
という風になっています。 コールバックは今のところonSuccessとonFailureしか見てなくて、前者の場合は結果の文字列、後者の場合は#fを返すようにしています。
あとイベントハンドラにSchemeのクロージャを設定できるようになったので、
(define $ getelem)
(set-handler! ($ "preview-btn") "click"
(lambda (e)
(let ((text (get-content ($ "source"))))
(set-content! ($ "preview-div")
(or (http-post "wikiformatter.cgi" (list (cons "text" . text)))
"error: connection failed")))))
とか書けます :-)
リクエストがタイムアウトしたとき急に切れたとき(transport.responceText === nullのとき)
とかタイムアウトしたとき(検出方法未調査)はどうするのが良いのかなぁ。
[ツッコミを入れる]