Module Js_of_ocaml_lwt.XmlHttpRequest

include module type of struct include Js_of_ocaml.XmlHttpRequest end
type readyState = Js_of_ocaml.XmlHttpRequest.readyState =
  1. | UNSENT
  2. | OPENED
  3. | HEADERS_RECEIVED
  4. | LOADING
  5. | DONE
class type xmlHttpRequest = object ... end
class type xmlHttpRequestUpload = object ... end
val create : unit -> xmlHttpRequest Js_of_ocaml.Js.t

The next part of this module allow one to use Ocaml with no need for Javascript documentation.

type 'response generic_http_frame = {
  1. url : string;
  2. code : int;
  3. headers : string -> string option;
  4. content : 'response;
  5. content_xml : unit -> Js_of_ocaml.Dom.element Js_of_ocaml.Dom.document Js_of_ocaml.Js.t option;
}

The type for XHR results. The code field is the http status code of the answer. The headers field is a function associating values to any header name.

type http_frame = string generic_http_frame
exception Wrong_headers of int * (string -> string option)

The exception raise by perform functions when the check_headers parameter returned false. The parameter of the exception is a function is like the headers function of http_frame

val perform_raw : ?headers:(string * string) list -> ?content_type:string -> ?get_args:(string * string) list -> ?check_headers:(int -> (string -> string option) -> bool) -> ?progress:(int -> int -> unit) -> ?upload_progress:(int -> int -> unit) -> ?contents: [< `POST_form of (string * Js_of_ocaml.Form.form_elt) list | `Form_contents of Js_of_ocaml.Form.form_contents | `String of string | `Blob of Js_of_ocaml.File.blob Js_of_ocaml.Js.t ] -> ?override_mime_type:string -> ?override_method: [< `GET | `POST | `HEAD | `PUT | `DELETE | `OPTIONS | `PATCH ] -> ?with_credentials:bool -> response_type:'a Js_of_ocaml.XmlHttpRequest.response -> string -> 'a generic_http_frame Lwt.t

perform_raw is the same as perform_raw_url except that an additional response_type argument can be given to set the XMLHttpRequest responseType, and hence return different types of data for GET requests.

val perform_raw_url : ?headers:(string * string) list -> ?content_type:string -> ?get_args:(string * string) list -> ?check_headers:(int -> (string -> string option) -> bool) -> ?progress:(int -> int -> unit) -> ?upload_progress:(int -> int -> unit) -> ?contents: [< `POST_form of (string * Js_of_ocaml.Form.form_elt) list | `Form_contents of Js_of_ocaml.Form.form_contents | `String of string | `Blob of Js_of_ocaml.File.blob Js_of_ocaml.Js.t ] -> ?override_mime_type:string -> ?override_method: [< `GET | `POST | `HEAD | `PUT | `DELETE | `OPTIONS | `PATCH ] -> ?with_credentials:bool -> string -> http_frame Lwt.t

perform_raw_url makes an asynchronous request to the specified url with specified options. The result is a cancelable thread returning an HTTP frame. By default, if post_args and form_arg are None, a GET request is used. If post_args or form_arg is Some _ (even Some []) then a POST request is made. But if override_method is set, the request method is forced, no matter the post_args or form_arg value. For example, with override_method set to `PUT and form_arg set to Some _ a PUT request including the form data will be made. The check_headers argument is run as soon as the answer code and headers are available. If it returns false, the request is canceled and the functions raise the Wrong_headers exception

val perform : ?headers:(string * string) list -> ?content_type:string -> ?get_args:(string * string) list -> ?check_headers:(int -> (string -> string option) -> bool) -> ?progress:(int -> int -> unit) -> ?upload_progress:(int -> int -> unit) -> ?contents: [< `POST_form of (string * Js_of_ocaml.Form.form_elt) list | `Form_contents of Js_of_ocaml.Form.form_contents | `String of string | `Blob of Js_of_ocaml.File.blob Js_of_ocaml.Js.t ] -> ?override_mime_type:string -> ?override_method: [< `GET | `POST | `HEAD | `PUT | `DELETE | `OPTIONS | `PATCH ] -> ?with_credentials:bool -> Js_of_ocaml.Url.url -> http_frame Lwt.t

perform is the same as perform_raw_url except that the Url argument has type Url.url.

val get : string -> http_frame Lwt.t

get url makes an asynchronous request to the specified url