问题及背景
众所周知,jsonp请求返回的内容是一个类似jqueryxxxxx({xxxxx})的结构,而mock json返回的时候,圆括号外面的内容是一直在变化的,如果在使用fidder mock接口的时候这种接口就不好mock了,那么有办法解决吗?
解决方案
修改FidderScript,步骤如下
1.找到FiddlerScript的位置
2.找到如下方法
OnBeforeResponse()
3.修改该方法
添加内容
if(oSession.url.indexOf("fapi/product/list") > 1){
oSession.utilDecodeResponse();
var body = oSession.GetResponseBodyAsString();
var url = oSession.url;
var start_index = oSession.url.indexOf("callback=");
var end_index = oSession.url.indexOf("&_");
var b = url.slice(start_index+9, end_index);
body = b + '('+ body + ')';
oSession.utilSetResponseBody(body);
}
其中,fapi/product/list 你可以替换为你的接口URI,作为识别你接口的判断条件(这个东西应该可以优化,有兴趣的可以自己研下,做成通用识别Mock)
4.保存FiddlerScript
此时,当你在Mock Jsonp接口返回的时候,你发现返回已经变成了jsonp格式了