0

我面临一个问题,我的 AJAX 功能在 Chrome、Firefox 和 IE 9 中运行良好,但在 IE 7 和 IE 8 中无法运行。

这是我的 AJAX 代码。

var url = 'abcd.php';
var dataString = '&id='+id+'&type=mesg';
$.ajax({
    url: url,
    global: true,
    type: "POST",
    data: dataString,
    dataType: "html",
    success: function(msg)
       {
       alert(msg);
           $('#main_data').html(msg);
       }
    });

它工作正常,直到alert味精,但不显示任何输出。

请帮我。

4

3 回答 3

1

我认为您使用jquery version 2+的是不支持的< IE 9

不再支持 IE 6/7/8: Remember that this can also affect IE9 and even IE10 if they are used in their “Compatibility View” modes that emulate older versions. To prevent these newer IE versions from slipping back into prehistoric modes, we suggest you always use an X-UA-Compatible tag or HTTP header. If you can use the HTTP header it is slightly better for performance because it avoids a potential browser parser restart.

阅读jquery-2-0-released

所以,你应该使用jquery version 1.9 for older versions of IE like IE 6,7,8 或者你可以将它添加到你的html page

<!--[if lt IE 9]>
<script src="jquery-1.9.0.js"></script>
<![endif]-->
<!--[if gte IE 9]>
<script src="jquery-2.0.0.js"><</script>
<![endif]-->
于 2013-07-19T05:18:15.873 回答
0

如果您使用 UTF-8 编码 AJAX 响应,IE 无法自动识别,还会抛出异常:“系统错误 1072896658”。

AJAX 但在 IE 中

有关详细信息,另请参阅:http: //keelypavan.blogspot.com/2006/07/system-error-1072896658-in-ie.html

那么这里有一个解决方案。您应该在 abcd.php 中添加一个 HTTP 标头来声明编码。

例如

<?php

//... do something
header('Content-Type: text/html; charset=utf-8');
echo $resonse_text;
于 2013-07-19T06:05:51.347 回答
0

使用此代码

$.support.cors= true;
var url = 'abcd.php';
var dataString = '&id='+id+'&type=mesg';
$.ajax({
async: false,
url: url,
global: true,
type: "POST",
data: dataString,
dataType: "html",
success: function(msg)
   {
   alert(msg);
       $('#main_data').html(msg);
   }
});
于 2013-07-19T05:57:38.790 回答