@@ -55,17 +55,21 @@ let ajax = {
5555 data : null ,
5656 dataType : "json"
5757 } ;
58+ this . isNull = function ( p ) {
59+ return p === undefined || p === null ;
60+ } ;
5861 this . isMock = function ( option ) {
5962 var useMock = AJAXCONF . mockMode ;
60- // console.log("mockCache",mockCache)
6163 this . mockInstance = AJAXCONF . mockCache [ option . url ] ;
6264 if ( option . mock !== undefined && option . mock !== null ) {
6365 if ( option . mock === true ) {
6466 //启用mock
6567 useMock = true ;
66- this . mockInstance = AJAXCONF . mockCache [ option . url ] ;
67- if ( this . mockInstance == undefined || this . mockInstance == null ) {
68- useMock = false ;
68+ if ( this . isNull ( this . mockInstance ) ) {
69+ this . mockInstance = AJAXCONF . mockCache [ "@" + option . type . toLowerCase ( ) + ":" + option . url ] ;
70+ if ( this . isNull ( this . mockInstance ) ) {
71+ useMock = false ;
72+ }
6973 }
7074 }
7175 if ( Object . prototype . toString . call ( option . mock ) === '[object Function]' ) {
@@ -77,17 +81,46 @@ let ajax = {
7781 //指向文件地址,不启用mock
7882 useMock = false ;
7983 option . url = option . mock ;
84+ option . type = "GET" ;
85+ }
86+ if ( Object . prototype . toString . call ( option . mock ) === '[object Object]' ) {
87+ //启用mock
88+ useMock = false ;
89+ this . mockInstance = option . mock ;
8090 }
8191 }
8292 else {
8393 //全局使用mock,但是未配置实现方法,设置useMock=false,会直接默认请求option.url
84- if ( useMock && ( this . mockInstance === undefined || this . mockInstance === null ) ) {
85- useMock = false ;
94+ if ( useMock ) {
95+ if ( this . isNull ( this . mockInstance ) ) {
96+ this . mockInstance = AJAXCONF . mockCache [ "@" + option . type . toLowerCase ( ) + ":" + option . url ] ;
97+ if ( this . isNull ( this . mockInstance ) ) {
98+ useMock = false ;
99+ }
100+ }
86101 }
87102 }
88- if ( useMock && ( typeof this . mockInstance === "string" ) ) {
103+ if ( useMock && ( Object . prototype . toString . call ( this . mockInstance ) === '[object String]' ) ) {
89104 useMock = false ;
90105 option . url = this . mockInstance ;
106+ option . type = "GET" ;
107+ }
108+ if ( Object . prototype . toString . call ( this . mockInstance ) === '[object Object]' ) {
109+ option = Object . assign ( option , this . mockInstance ) ;
110+ option . mock = undefined ;
111+ return this . isMock ( option ) ;
112+ }
113+ if ( option . url . substr ( 0 , 5 ) === "@get:" ) {
114+ option . url = option . url . substr ( 5 ) ;
115+ }
116+ else if ( option . url . substr ( 0 , 6 ) === "@post:" ) {
117+ option . url = option . url . substr ( 6 ) ;
118+ }
119+ else if ( option . url . substr ( 0 , 8 ) === "@delete:" ) {
120+ option . url = option . url . substr ( 8 ) ;
121+ }
122+ else if ( option . url . substr ( 0 , 5 ) === "@put:" ) {
123+ option . url = option . url . substr ( 5 ) ;
91124 }
92125 return useMock ;
93126 } ;
@@ -155,8 +188,9 @@ let ajax = {
155188 return ;
156189 }
157190 new Promise ( function ( res , rej ) {
158- var dj = instance . call ( scope , option . data , res , rej ) ;
159- res ( new randomPlugin ( dj ) ) ;
191+ var dd = instance . call ( scope , option . data , res , rej ) ;
192+ // var dd=new randomPlugin().handle(dj);
193+ res ( dd ) ;
160194 } ) . then ( function ( dd ) {
161195 if ( option . success ) {
162196 option . success . call ( scope , dd ) ;
@@ -205,11 +239,11 @@ let ajax = {
205239 var scope = this . scope ;
206240 var formatResult = this . formatResult ;
207241 var opt = Object . assign ( this . defaultConfig , AJAXCONF . userDefaultConfig , config ) ;
208- var request = this . createInstance ( ) ;
209- opt . url = this . formatUrl ( opt . url , opt . data ) ;
210242 if ( this . isMock ( opt ) ) {
211243 return this . mock ( opt , scope ) ;
212244 }
245+ var request = this . createInstance ( ) ;
246+ opt . url = this . formatUrl ( opt . url , opt . data ) ;
213247 if ( opt . baseUrl !== undefined && opt . baseUrl === false ) {
214248 request . open ( opt . type , opt . url , opt . async ) ;
215249 }
@@ -250,7 +284,7 @@ let ajax = {
250284 }
251285 else {
252286 if ( opt . dataType . toLowerCase ( ) === 'formdata' ) {
253- if ( opt . data != null ) {
287+ if ( opt . data != null && Object . prototype . toString . call ( opt . data ) !== '[object FormData]' ) {
254288 var formData = new FormData ( ) ;
255289 Object . keys ( opt . data ) . forEach ( key => {
256290 if ( opt . data [ key ] . constructor === Array || opt . data [ key ] . constructor === FileList ) {
0 commit comments