这是我的代码:
$('#select').change(function() {
$.ajax({
url: Drupal.settings.basePath + 'custom-ajax/' + $(this).val(),
dataType: 'html',
success: function(response) {
$('#container').html(response);
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.status);
}
});
});
我的select的第一个“更改”在控制台中返回“undefined(undefined)”,第二个更改按预期工作($('#container')。html(response);)。第三个更改返回undefined,第四个更改按预期返回,等等。
在每种情况下,ajax回调的完整URL都被命中 - 如果我将该URL复制并粘贴到新的浏览器窗口中,我可以点击刷新100次,每次加载都成功,所以我不会相信它与页面没有响应有任何关系。值得一提的是,当错误回调运行时,它会在更改下拉列表后立即发生 - 我不会觉得它甚至试图调用提供的URL。
答案 0 :(得分:0)
如果它甚至没有像您建议的那样调用URL,则表明该URL无效。尝试看看在一些测试用例中返回的内容:
$('#select').change(function() {
var url = Drupal.settings.basePath + 'custom-ajax/' + $(this).val();
alert(url);
window.location = url;
});