defaults.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. 'use strict';
  2. var utils = require('./utils');
  3. var normalizeHeaderName = require('./helpers/normalizeHeaderName');
  4. var PROTECTION_PREFIX = /^\)\]\}',?\n/;
  5. var DEFAULT_CONTENT_TYPE = {
  6. 'Content-Type': 'application/x-www-form-urlencoded'
  7. };
  8. function setContentTypeIfUnset(headers, value) {
  9. if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {
  10. headers['Content-Type'] = value;
  11. }
  12. }
  13. module.exports = {
  14. transformRequest: [function transformRequest(data, headers) {
  15. normalizeHeaderName(headers, 'Content-Type');
  16. if (utils.isFormData(data) ||
  17. utils.isArrayBuffer(data) ||
  18. utils.isStream(data) ||
  19. utils.isFile(data) ||
  20. utils.isBlob(data)
  21. ) {
  22. return data;
  23. }
  24. if (utils.isArrayBufferView(data)) {
  25. return data.buffer;
  26. }
  27. if (utils.isURLSearchParams(data)) {
  28. setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
  29. return data.toString();
  30. }
  31. if (utils.isObject(data)) {
  32. setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
  33. return JSON.stringify(data);
  34. }
  35. return data;
  36. }],
  37. transformResponse: [function transformResponse(data) {
  38. /*eslint no-param-reassign:0*/
  39. if (typeof data === 'string') {
  40. data = data.replace(PROTECTION_PREFIX, '');
  41. try {
  42. data = JSON.parse(data);
  43. } catch (e) { /* Ignore */ }
  44. }
  45. return data;
  46. }],
  47. headers: {
  48. common: {
  49. 'Accept': 'application/json, text/plain, */*'
  50. },
  51. patch: utils.merge(DEFAULT_CONTENT_TYPE),
  52. post: utils.merge(DEFAULT_CONTENT_TYPE),
  53. put: utils.merge(DEFAULT_CONTENT_TYPE)
  54. },
  55. timeout: 0,
  56. xsrfCookieName: 'XSRF-TOKEN',
  57. xsrfHeaderName: 'X-XSRF-TOKEN',
  58. maxContentLength: -1,
  59. validateStatus: function validateStatus(status) {
  60. return status >= 200 && status < 300;
  61. }
  62. };