diff --git a/Libraries/Network/RCTNetworking.mm b/Libraries/Network/RCTNetworking.mm index 06717f3c66e247..3a2fec4d32d40f 100644 --- a/Libraries/Network/RCTNetworking.mm +++ b/Libraries/Network/RCTNetworking.mm @@ -259,10 +259,13 @@ - (RCTURLRequestCancellationBlock)buildRequest:(NSDictionary *)q NSURL *URL = [RCTConvert NSURL:query[@"url"]]; // this is marked as nullable in JS, but should not be null NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; request.HTTPMethod = [RCTConvert NSString:RCTNilIfNull(query[@"method"])].uppercaseString ?: @"GET"; + request.HTTPShouldHandleCookies = [RCTConvert BOOL:query[@"withCredentials"]]; - // Load and set the cookie header. - NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:URL]; - request.allHTTPHeaderFields = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies]; + if (request.HTTPShouldHandleCookies == YES) { + // Load and set the cookie header. + NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:URL]; + request.allHTTPHeaderFields = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies]; + } // Set supplied headers. NSDictionary *headers = [RCTConvert NSDictionary:query[@"headers"]]; @@ -273,7 +276,6 @@ - (RCTURLRequestCancellationBlock)buildRequest:(NSDictionary *)q }]; request.timeoutInterval = [RCTConvert NSTimeInterval:query[@"timeout"]]; - request.HTTPShouldHandleCookies = [RCTConvert BOOL:query[@"withCredentials"]]; NSDictionary *data = [RCTConvert NSDictionary:RCTNilIfNull(query[@"data"])]; NSString *trackingName = data[@"trackingName"]; if (trackingName) {