(url, async, ctxId)
| 74 | } |
| 75 | |
| 76 | var web_req_send = function (url, async, ctxId) { |
| 77 | create_web_ctx_if_needed(ctxId); |
| 78 | var urlCpy = url; |
| 79 | url = web_req_build_url(url, ctxId); |
| 80 | var req = new XMLHttpRequest(); |
| 81 | if (async) |
| 82 | req.timeout = web_req_ctxs[ctxId].timeout; |
| 83 | req.open(web_req_ctxs[ctxId].method, url, async); |
| 84 | for (var i = 0; i < web_req_ctxs[ctxId].headers.length; i++) { |
| 85 | req.setRequestHeader(web_req_ctxs[ctxId].headers[i].key, web_req_ctxs[ctxId].headers[i].value); |
| 86 | } |
| 87 | if (web_req_ctxs[ctxId].use_upload_callback) { |
| 88 | req.upload.addEventListener('progress', (event) => { |
| 89 | if (event.lengthComputable) { |
| 90 | var v = event.loaded / event.total; |
| 91 | Module.ccall('emsCallUploadCallback', 'number', ['number', 'number'], [v, ctxId]); |
| 92 | } |
| 93 | }); |
| 94 | } |
| 95 | if (web_req_ctxs[ctxId].use_download_callback) { |
| 96 | req.addEventListener('progress', (event) => { |
| 97 | if (event.lengthComputable) { |
| 98 | var v = event.loaded / event.total; |
| 99 | Module.ccall('emsCallDownloadCallback', 'number', ['number', 'number'], [v, ctxId]); |
| 100 | } |
| 101 | }); |
| 102 | } |
| 103 | req.onloadend = (e) => { |
| 104 | var res = { |
| 105 | url: urlCpy, |
| 106 | code: req.status, |
| 107 | text: req.responseText, |
| 108 | error: (req.status < 200 || req.status > 399) ? req.statusText : null |
| 109 | }; |
| 110 | Module.ccall('emsCallResponseCallback', 'number', ['string', 'bool', 'number'], [JSON.stringify(res), async, ctxId]); |
| 111 | }; |
| 112 | req.send(web_req_get_payload(ctxId)); |
| 113 | } |
| 114 | |
| 115 | var web_req_sync_download = function (url, outputPath, ctxId) { |
| 116 | create_web_ctx_if_needed(ctxId); |
no test coverage detected