feat(common): add URLSearchParams to request body (#37852)
URLSearch params are by default supported in the browser but are not supported by angular/http package added support for URLSearchParams Fixes #36317 PR Close #37852
This commit is contained in:
		
							parent
							
								
									e1c5cea2e7
								
							
						
					
					
						commit
						4bc3cf216d
					
				| @ -68,6 +68,15 @@ function isFormData(value: any): value is FormData { | |||||||
|   return typeof FormData !== 'undefined' && value instanceof FormData; |   return typeof FormData !== 'undefined' && value instanceof FormData; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /** | ||||||
|  |  * Safely assert whether the given value is a URLSearchParams instance. | ||||||
|  |  * | ||||||
|  |  * In some execution environments URLSearchParams is not defined. | ||||||
|  |  */ | ||||||
|  | function isUrlSearchParams(value: any): value is URLSearchParams { | ||||||
|  |   return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /** | /** | ||||||
|  * An outgoing HTTP request with an optional typed body. |  * An outgoing HTTP request with an optional typed body. | ||||||
|  * |  * | ||||||
| @ -273,7 +282,7 @@ export class HttpRequest<T> { | |||||||
|     // Check whether the body is already in a serialized form. If so,
 |     // Check whether the body is already in a serialized form. If so,
 | ||||||
|     // it can just be returned directly.
 |     // it can just be returned directly.
 | ||||||
|     if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) || |     if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) || | ||||||
|         typeof this.body === 'string') { |         isUrlSearchParams(this.body) || typeof this.body === 'string') { | ||||||
|       return this.body; |       return this.body; | ||||||
|     } |     } | ||||||
|     // Check whether the body is an instance of HttpUrlEncodedParams.
 |     // Check whether the body is an instance of HttpUrlEncodedParams.
 | ||||||
|  | |||||||
| @ -143,6 +143,10 @@ const TEST_STRING = `I'm a body!`; | |||||||
|         const body = new ArrayBuffer(4); |         const body = new ArrayBuffer(4); | ||||||
|         expect(baseReq.clone({body}).serializeBody()).toBe(body); |         expect(baseReq.clone({body}).serializeBody()).toBe(body); | ||||||
|       }); |       }); | ||||||
|  |       it('passes URLSearchParams through', () => { | ||||||
|  |         const body = new URLSearchParams('foo=1&bar=2'); | ||||||
|  |         expect(baseReq.clone({body}).serializeBody()).toBe(body); | ||||||
|  |       }); | ||||||
|       it('passes strings through', () => { |       it('passes strings through', () => { | ||||||
|         const body = 'hello world'; |         const body = 'hello world'; | ||||||
|         expect(baseReq.clone({body}).serializeBody()).toBe(body); |         expect(baseReq.clone({body}).serializeBody()).toBe(body); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user