1 | var Request = require('./Request');
|
2 | var constants = require('../shared/constants');
|
3 | var inherits = require('../shared/inherits');
|
4 | var buildURL = require('../shared/buildURL');
|
5 | var handleOptions = require('../shared/handleOptions');
|
6 | var callRequestCreatedCallback = require('../shared/callRequestCreatedCallback');
|
7 | var addEventListeners = require('../http/addEventListeners');
|
8 | var handleXhrProps = require('../http/handleXhrProps');
|
9 | var handleHeaders = require('../http/handleHeaders');
|
10 | var handleRequestBody = require('../http/handleRequestBody');
|
11 | var callXhrHook = require('../http/callXhrHook');
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | function HttpRequest(options, onsuccess, onerror) {
|
23 | var xhr;
|
24 | var body;
|
25 | var url;
|
26 |
|
27 |
|
28 | Request.call(this, constants.HTTP_REQUEST, options, onsuccess, onerror);
|
29 |
|
30 |
|
31 | handleOptions(options);
|
32 |
|
33 | xhr = this.xhr = options.createXHR.call(null, options);
|
34 | body = handleRequestBody(options);
|
35 | url = buildURL(options);
|
36 |
|
37 |
|
38 | handleXhrProps(xhr, options);
|
39 |
|
40 |
|
41 | callXhrHook(options.onXhrCreated, xhr, options);
|
42 |
|
43 |
|
44 | xhr.open(options.method || 'GET', url, true, options.username, options.password);
|
45 |
|
46 |
|
47 | addEventListeners(this);
|
48 |
|
49 |
|
50 | callXhrHook(options.onXhrOpened, xhr, options);
|
51 |
|
52 |
|
53 | handleHeaders(xhr, options);
|
54 |
|
55 |
|
56 | xhr.send(body);
|
57 |
|
58 |
|
59 | callXhrHook(options.onXhrSent, xhr, options);
|
60 |
|
61 |
|
62 | callRequestCreatedCallback(options, this);
|
63 | }
|
64 |
|
65 | inherits(HttpRequest, Request);
|
66 |
|
67 | module.exports = HttpRequest;
|