* @ngdoc service * @kind function * @name $http * @requires ng.$httpBackend * @requires $cacheFactory * @requires $rootScope * @requires $q * @requires $injector *
(requestConfig)
| 11186 | </example> |
| 11187 | */ |
| 11188 | function $http(requestConfig) { |
| 11189 | if (!isObject(requestConfig)) { |
| 11190 | throw minErr('$http')('badreq', |
| 11191 | 'Http request configuration must be an object. Received: {0}', |
| 11192 | requestConfig); |
| 11193 | } |
| 11194 | |
| 11195 | if (!isString(requestConfig.url)) { |
| 11196 | throw minErr('$http')('badreq', |
| 11197 | 'Http request configuration url must be a string. Received: {0}', |
| 11198 | requestConfig.url); |
| 11199 | } |
| 11200 | |
| 11201 | var config = extend({ |
| 11202 | method: 'get', |
| 11203 | transformRequest: defaults.transformRequest, |
| 11204 | transformResponse: defaults.transformResponse, |
| 11205 | paramSerializer: defaults.paramSerializer |
| 11206 | }, |
| 11207 | requestConfig); |
| 11208 | |
| 11209 | config.headers = mergeHeaders(requestConfig); |
| 11210 | config.method = uppercase(config.method); |
| 11211 | config.paramSerializer = isString(config.paramSerializer) |
| 11212 | ? $injector.get(config.paramSerializer) |
| 11213 | : config.paramSerializer; |
| 11214 | |
| 11215 | var serverRequest = function (config) { |
| 11216 | var headers = config.headers; |
| 11217 | var reqData = transformData(config.data, |
| 11218 | headersGetter(headers), |
| 11219 | undefined, |
| 11220 | config.transformRequest); |
| 11221 | |
| 11222 | // strip content-type if data is undefined |
| 11223 | if (isUndefined(reqData)) { |
| 11224 | forEach(headers, |
| 11225 | function (value, header) { |
| 11226 | if (lowercase(header) === 'content-type') { |
| 11227 | delete headers[header]; |
| 11228 | } |
| 11229 | }); |
| 11230 | } |
| 11231 | |
| 11232 | if (isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)) { |
| 11233 | config.withCredentials = defaults.withCredentials; |
| 11234 | } |
| 11235 | |
| 11236 | // send request |
| 11237 | return sendReq(config, reqData).then(transformResponse, transformResponse); |
| 11238 | }; |
| 11239 | |
| 11240 | var chain = [serverRequest, undefined]; |
| 11241 | var promise = $q.when(config); |
| 11242 | |
| 11243 | // apply interceptors |
| 11244 | forEach(reversedInterceptors, |
| 11245 | function (interceptor) { |
no test coverage detected