我有一个使用mockjax的动态模拟设置,它适用于我的大多数ajax请求,但是当dataType设置为Script时失败,并让请求传递到常规的Ajax处理程序。
// gets mocked
$.ajax({
type: "GET",
url: "http://myurl.com/myfile.js?_=1395314460347"
})
// does not get mocked!
$.ajax({
type: "GET",
dataType: "script",
url: "http://myurl.com/myfile.js?_=1395314460347"
})如何在mockjax中配置动态模拟以拦截具有dataType集的请求?
更新: mockjax定义的示例代码
我正在创建动态模拟,所以我定义的是函数,而不是普通的对象,类似于.
$.mockjax(function(settings) {
// settings.url == '/restful/<service>'
var service = settings.url.match(/\/restful\/(.*)$/);
if ( service ) {
return {
proxy: '/mocks/' + service[1] + '.json',
// handle `dataType: 'script'`
dataType: 'application/javascript'
};
}
return;
});发布于 2014-03-20 13:14:31
您是否在模拟的端点中设置dataType属性?
请参阅:https://github.com/appendto/jquery-mockjax#data-types
如果是,您是否尝试过将模拟dataType设置为application/javascript?
$.mockjax({
type: "GET",
dataType: "application/javascript",
url: "myfile.js?_=1395314460347",
responseText: "(function () { alert('hello world!'); }());"
});
$.ajax({
type: "GET",
dataType: "script",
url: "myfile.js?_=1395314460347"
});https://stackoverflow.com/questions/22532271
复制相似问题