在我们使用mock.js拦截带参数的get请求时候,使用以下方式往往会失效。因为get请求会把参数显示的放在URL中。
Mock.mock("/getinfo", "get", mockData)
在调用getinfo
接口时,我们实际的URL可能是/getinfo?id=1&type=2...
等一长串。
我们可以使用RegExp匹配URL正则表达式"/getinfo" + ".*"
匹配所有/getinfo
开头的URL。
Mock.mock(RegExp("/getinfo" + ".*"), "get", mockData)
如果有多个类似的接口如
/getinfo,/getinfoByType
,则可以使用更严格的正则表达式如"/getinfo?" + ".*"
和"/getinfoByType?" + ".*"
。
也可以在生成响应数据的函数function(options)中根据URL不同来返回不同响应数据。
Mock.mock(RegExp('/getinfo?' + ".*"), "get", function(options){
// 处理URL根据URL不同返回响应数据
console.log(options.url);
return Mock.mock(mockData);
});