diff --git a/src/ios/AFNetworking/AFHTTPSessionManager.m b/src/ios/AFNetworking/AFHTTPSessionManager.m index 448983e..11467e3 100644 --- a/src/ios/AFNetworking/AFHTTPSessionManager.m +++ b/src/ios/AFNetworking/AFHTTPSessionManager.m @@ -184,6 +184,8 @@ { NSError *serializationError = nil; NSMutableURLRequest *request = [self.requestSerializer multipartFormRequestWithMethod:@"POST" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters constructingBodyWithBlock:block error:&serializationError]; + [request setHTTPShouldHandleCookies:NO]; + if (serializationError) { if (failure) { dispatch_async(self.completionQueue ?: dispatch_get_main_queue(), ^{ @@ -232,6 +234,8 @@ { NSError *serializationError = nil; NSMutableURLRequest *request = [self.requestSerializer multipartFormRequestWithMethod:@"POST" URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters constructingBodyWithBlock:block error:&serializationError]; + [request setHTTPShouldHandleCookies:NO]; + if (serializationError) { if (failure) { dispatch_async(self.completionQueue ?: dispatch_get_main_queue(), ^{ @@ -293,6 +297,8 @@ { NSError *serializationError = nil; NSMutableURLRequest *request = [self.requestSerializer multipartFormRequestWithMethod:method URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters constructingBodyWithBlock:block error:&serializationError]; + [request setHTTPShouldHandleCookies:NO]; + if (serializationError) { if (failure) { dispatch_async(self.completionQueue ?: dispatch_get_main_queue(), ^{ @@ -358,6 +364,8 @@ { NSError *serializationError = nil; NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:method URLString:[[NSURL URLWithString:URLString relativeToURL:self.baseURL] absoluteString] parameters:parameters error:&serializationError]; + [request setHTTPShouldHandleCookies:NO]; + if (serializationError) { if (failure) { dispatch_async(self.completionQueue ?: dispatch_get_main_queue(), ^{ diff --git a/test/e2e-specs.js b/test/e2e-specs.js index 3e509fe..6eaff0a 100644 --- a/test/e2e-specs.js +++ b/test/e2e-specs.js @@ -464,7 +464,7 @@ const tests = [ } }, { - description: 'should not send any cookies after running "clearCookies" (GET) #59', + description: 'should not send programmatically set cookies after running "clearCookies" (GET) #59', expected: 'resolved: {"status": 200, "data": "{\"headers\": {\"Cookie\": \"\"...', func: function (resolve, reject) { cordova.plugin.http.setCookie('http://httpbin.org/get', 'myCookie=myValue'); @@ -968,7 +968,26 @@ const tests = [ result.type.should.be.equal('resolved'); result.data.data.should.include('TLS handshake'); } - } + }, + { + description: 'should not send any cookies after running "clearCookies" (GET) #248', + expected: 'resolved: {"status": 200, "data": "{\"cookies\":{}} ...', + before: helpers.disableFollowingRedirect, + func: function (resolve, reject) { + cordova.plugin.http.get('https://httpbin.org/cookies/set?myCookieKey=myCookieValue', {}, {}, function () { + cordova.plugin.http.clearCookies(); + cordova.plugin.http.get('https://httpbin.org/cookies', {}, {}, resolve, reject); + }, function () { + cordova.plugin.http.clearCookies(); + cordova.plugin.http.get('https://httpbin.org/cookies', {}, {}, resolve, reject); + }); + }, + validationFunc: function (driver, result) { + result.type.should.be.equal('resolved'); + result.data.status.should.be.equal(200); + JSON.parse(result.data.data).cookies.should.be.eql({}); + } + }, ]; if (typeof module !== 'undefined' && module.exports) {