У меня есть в основном это на странице:
<script type="text/javascript">
function refresh_context() {
$("#ajax-context").html("Searching...");
$.get("/ajax/ldap_search.php", {cn: $("#username").val()}, function(xml) {
$("#ajax-context").html($("display", xml).text());
$("#context").val($("context", xml).text());
}, 'xml');
}
$(document).ready(function() {
$("#username").blur(refresh_context);
});
</script>
<input type="text" name="username" id="username" maxlength="255" value="" />
<input type="hidden" name="context" id="context" value=""/>
<div id="ajax-context"></div>
Что он должен делать (и это хорошо работает в Firefox), когда вы вводите имя пользователя в поле #username, он запускает /ajax/ldap_search.php?cn=$username, который ищет имя пользователя нашей компании в ldap и возвращает его необработанный контекст и отформатированную версию контекста следующим образом:
<result>
<display>Staff -> Accounting -> John Smith</display>
<context>cn=jsmith,ou=Accounting,ou=Staff,ou=Users,o=MyOrg</context>
</result>
Отформатированная версия (отображение) переходит в div # ajax-context и переходит к скрытому вводу #context. (Кроме того, -> на самом деле - "& g t;" (без пробелов)).
Однако в IE элемент div застревает на «Поиск ...», а скрытое значение ввода остается пустым.
Я пробовал оба .get и .post и ни одна из них не работает. Я уверен, что это не работает на .get, потому что, если я попробую это, я даже не получу предупреждение:
$.get("/ajax/ldap_search.php", {cn: $("#username").val()}, function() {
alert("Check");
});
Кроме того, IE не выдаёт мне ошибок скрипта.
Редактировать: Добавлен "$ (document) .ready (function () {", .blur уже был в нем в моем коде, но я забыл включить это в свой пост.
Редактировать 2: запрос отправляется, и apache2 получает его:
10.135.128.96 - - [01/May/2009:10:04:27 -0500] "GET /ajax/ldap_search.php?cn=i_typed_this_in_IE HTTP/1.1" 200 69