在我們使用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);
});