TypeError:settings.data在MOCKJAX中未定义

时间:2014-06-14 08:12:48

标签: php jquery ajax mockjax

我有mockjax代码,它给了我错误。这是我的代码

  $.mockjax({
    url: '*',
    responseTime: 2000,
    response: function (settings) {
        var query = settings.data.query,
            queryLowerCase = query.toLowerCase(),
            re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi'),
            suggestions = $.grep(countriesArray, function (country) {
                 // return country.value.toLowerCase().indexOf(queryLowerCase) === 0;
                return re.test(country.value);
            }),
            response = {
                query: query,
                suggestions: suggestions
            };

        this.responseText = JSON.stringify(response);
    }
});

这是我的ajax代码

 $.ajax({
             async: false,
             url: 'coments.php?id='+$('#id').val()+'&cmnt='+$('#cmnt').val()+'&type=2',
             success: function(data) {
             alert('saved');
             }
});

当我检查控制台时,它会给我错误TypeError: settings.data is undefined

1 个答案:

答案 0 :(得分:1)

这是documented bug in Mockjax。基本上,请求匹配器仅适用于数据对象,而不适用于查询字符串。您可以改变$.ajax()这样的电话来匹配您的模拟:

$.ajax({
    async: false,
    url: 'coments.php',
    data: {
        id: $('#id').val(),
        cmnt: $('#cmnt').val(),
        type: 2
    }
    success: function(data) {
        alert('saved');
    }
});