diff --git a/src/browser/cordova-http-plugin.js b/src/browser/cordova-http-plugin.js index 5c6a672..17ad71b 100644 --- a/src/browser/cordova-http-plugin.js +++ b/src/browser/cordova-http-plugin.js @@ -101,12 +101,20 @@ function setHeaders(xhr, headers) { } function sendRequest(method, withData, opts, success, failure) { - var data = withData ? opts[1] : null; - var params = withData ? null : serializeParams(opts[1]); - var serializer = withData ? opts[2] : null; - var headers = withData ? opts[3] : opts[2]; - var timeout = withData ? opts[4] : opts[3]; - var url = params ? opts[0] + '?' + params : opts[0]; + var data, serializer, headers, timeout, followRedirect; + var url = opts[0]; + + if (withData) { + data = opts[1]; + serializer = opts[2]; + headers = opts[3]; + timeout = opts[4]; + followRedirect = opts[5]; + } else { + headers = opts[1]; + timeout = opts[2]; + followRedirect = opts[3]; + } var processedData = null; var xhr = new XMLHttpRequest(); @@ -117,6 +125,10 @@ function sendRequest(method, withData, opts, success, failure) { return failure('advanced-http: custom cookies not supported on browser platform'); } + if (!followRedirect) { + return failure('advanced-http: disabling follow redirect not supported on browser platform'); + } + switch (serializer) { case 'json': setDefaultContentType(headers, 'application/json; charset=utf8'); @@ -160,24 +172,24 @@ function sendRequest(method, withData, opts, success, failure) { } var browserInterface = { - post: function (success, failure, opts) { - return sendRequest('post', true, opts, success, failure); - }, get: function (success, failure, opts) { return sendRequest('get', false, opts, success, failure); }, + head: function (success, failure, opts) { + return sendRequest('head', false, opts, success, failure); + }, + delete: function (success, failure, opts) { + return sendRequest('delete', false, opts, success, failure); + }, + post: function (success, failure, opts) { + return sendRequest('post', true, opts, success, failure); + }, put: function (success, failure, opts) { return sendRequest('put', true, opts, success, failure); }, patch: function (success, failure, opts) { return sendRequest('patch', true, opts, success, failure); }, - delete: function (success, failure, opts) { - return sendRequest('delete', false, opts, success, failure); - }, - head: function (success, failure, opts) { - return sendRequest('head', false, opts, success, failure); - }, uploadFile: function (success, failure, opts) { return failure('advanced-http: function "uploadFile" not supported on browser platform'); }, @@ -189,9 +201,6 @@ var browserInterface = { }, setClientAuthMode: function (success, failure, opts) { return failure('advanced-http: function "setClientAuthMode" not supported on browser platform'); - }, - disableRedirect: function (success, failure, opts) { - return failure('advanced-http: function "disableRedirect" not supported on browser platform'); } }; diff --git a/test/e2e-specs.js b/test/e2e-specs.js index 1ae7695..af7a5d1 100644 --- a/test/e2e-specs.js +++ b/test/e2e-specs.js @@ -3,6 +3,11 @@ const hooks = { cordova.plugin.http.clearCookies(); helpers.enableFollowingRedirect(function() { + // server trust mode is not supported on brpwser platform + if (cordova.platformId === 'browser') { + return resolve(); + } + helpers.setDefaultServerTrustMode(function () { // @TODO: not ready yet // helpers.setNoneClientAuthMode(resolve, reject);