一尘不染

jQuery .get / .post无法在IE 7或8上正常工作

ajax

我基本上在页面上有这个:

<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 -&gt; Accounting -&gt; John Smith</display>
    <context>cn=jsmith,ou=Accounting,ou=Staff,ou=Users,o=MyOrg</context>
</result>

格式化的版本(显示)转到div#ajax-context并转到隐藏的输入#context。(此外,->实际上是-“&gt;”(不带空格))。

但是,在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

阅读 277

收藏
2020-07-26

共1个答案

一尘不染

问题出在ldap_search.php文件中。我有这个(基于我在某人的博客上阅读的示例):

header("content-type:application/xml-xhtml;charset=utf-8");

IE实际需要的是它才能正确阅读它:

header("content-type:application/xml;charset=utf-8");

天哪,我讨厌IE。

2020-07-26