Connection.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * 在 ajax request 前修改url,增加服务端`basePath`
  3. * `basePath`在`app.json`配置
  4. */
  5. Ext.define('Ext.overrides.data.Connection', {
  6. override: 'Ext.data.Connection',
  7. urlRegexp: /(http|ftp|https):\/\//,
  8. config: {
  9. /**
  10. * @cfg {Object} defaultServerHeaders
  11. * 与defaultHeaders有区别,只在调用server api的时候才添加的headers
  12. */
  13. defaultServerHeaders: null
  14. },
  15. /* 本地配置和服务器配置
  16. "dev":{
  17. "server": {
  18. "basePath": "http://127.0.0.1:24002",
  19. "urlPattern": "^\/api\/"
  20. }
  21. },
  22. "prod":{
  23. "server": {
  24. "basePath": "http://10.1.81.2:24002",
  25. "urlPattern": "^\/api\/"
  26. }
  27. },
  28. */
  29. privates: {
  30. setupServerOptions: function(options) {
  31. //检验是开发环境还是线上地址
  32. let prod = RegExp("10.1.81.2:*").test(window.location.href);
  33. var basePath = prod?'http://10.1.81.2:24002':'http://127.0.0.1:24002',
  34. originUrl = options.url,
  35. urlPattern = "^\/api\/";
  36. if ( new RegExp(urlPattern).test(originUrl) ) {
  37. Ext.Object.merge(options, {
  38. url: basePath + originUrl.replace('/api',''),
  39. headers: this.getDefaultServerHeaders() || {}
  40. });
  41. }
  42. }
  43. },
  44. request: function(options) {
  45. if (options && options.url) {
  46. this.setupServerOptions(options);
  47. }
  48. return this.callParent([options]);
  49. }
  50. });