Ich habe eine ASP.net-Webanwendung mit einer Masterseite. In der Menüleiste meiner Masterseite gibt es eine Suchfunktion, bei der ein Benutzer eine Suchanfrage eingibt und auf eine Schaltfläche klickt. Wenn die Schaltfläche angeklickt wird, navigiert der Browser des Benutzers zu einer Seite, die Suchergebnisse anzeigt. Diese Funktion funktioniert hervorragend.
Ich habe mich jedoch entschieden, jQuery AJAX und jQuery Autocomplete zu verwenden, um das Programm benutzerfreundlicher zu gestalten. Die Suche funktioniert gut von http://example.com/page1.aspx y http://example.com/page2.aspx aber es funktioniert nicht von http://example.com/subdirectory/index.aspx .
Hier ist mein Javascript-Code zur Durchführung der Autovervollständigung: (von der Master-Seite)
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;
}
});
Es handelt sich um einen jQuery-AJAX-Aufruf an DeviceSelection.aspx/getDeviceFieldAutocomplete, einen Webdienstaufruf in meinem ASP.net-Code. DeviceSelection.aspx befindet sich unter http://example.com/DeviceSelection.aspx Ich vermute also, dass das Problem darin besteht, dass ein Benutzer beim Zugriff auf http://example.com/subdirectory/index.aspx und eine Abfrage eingibt, versucht es, den Webdienst unter http://example.com/subdirectory/DeviceSelection.aspx .
Wie kann ich das schaffen?