У меня есть веб-приложение ASP.net с главной страницей. В строке меню моей главной страницы есть функция поиска, где пользователь вводит запрос и нажимает кнопку. Когда кнопка нажата, браузер пользователя переходит на страницу с результатами поиска. Эта функция отлично работает.
Однако я решил использовать jQuery AJAX и jQuery Autocomplete, чтобы сделать программу проще в использовании. Поиск отлично работает с http://example.com/page1.aspx и http://example.com/page2.aspx,, но не работает с http://example.com/subdirectory/index.aspx.
Вот мой код JavaScript для выполнения автозаполнения: (с главной страницы)
function setupSerialNumberAutocomplete(id) {
$(id).autocomplete({
source: function(request, response) {
$.ajax({
url: "DeviceSelection.aspx/getDeviceFieldAutocomplete",
data: "{ 'text': '" + escape(request.term) + "', 'field': 'SerialNumber' }",
dataType: "json",
type: "POST",
contentType: "application/json",
dataFilter: function(data) { return data; },
success: function(data) {
response($.map(data.d, function(item) {
return {
value: item
}
}))
},
error: function(xhr, status) {
var exception = eval("(" + xhr.responseText + ")");
$("#divStatus").html("Error fetching registration codes list: " + xhr.statusText + " - " + exception.Message + ".");
}
}); //end - ajax
},
minLength: 2,
focus: function(event, ui) {
$(id).val(ui.item.value);
return false;
},
select: function(event, ui) {
$(id).val(ui.item.value);
return false;
}
});
Это вызов jQuery AJAX для DeviceSelection.aspx / getDeviceFieldAutocomplete, вызова веб-службы в моем коде ASP.net. DeviceSelection.aspx находится по адресу http://example.com/DeviceSelection.aspx,, поэтому я предполагаю, что проблема в том, что когда пользователь обращается к http://example.com/subdirectory/index.aspx и вводит запрос, он пытается вызвать веб-службу по адресу http://example.com/subdirectory/DeviceSelection.aspx.
Как я могу сделать эту работу?