В моем веб-проекте ASP.net я написал следующий код Javascript в файле .js:
function getDeviceTypes() {
var deviceTypes;
$.ajax({
async: false,
type: "POST",
url: "Controls/ModelSelectorWebMethods.aspx/getDeviceTypes",
data: '{ }',
contentType: "application/json;",
dataType: "json",
success: function(response) {
deviceTypes = response.d;
},
error: function(xhr, status) {
debugger;
alert('Error getting device types.');
}
}); // end - $.ajax
return deviceTypes;
}
Он отлично работал, пока я не попытался загрузить этот .js файл на страницу в подкаталоге.
Предположим, что имя моего проекта widget
.
Когда я использую этот код в основном виртуальном каталоге, Javascript интерпретирует Controls/ModelSelectorWebMethods.aspx/getDeviceTypes
как означающий https://mysite.com/widget/Controls/ModelSelectorWebMethods.aspx/getDeviceTypes
, и все хорошо. Однако со страницы в подкаталоге Javascript интерпретирует ее как означающую https://mysite.com/widget/subdirectory/Controls/ModelSelectorWebMethods.aspx/getDeviceTypes
, и она не работает.
Как я могу написать свой Javascript-код, чтобы веб-метод AJAX мог быть вызван со страниц в любом каталоге в моем приложении?