jQuery ajaxForm插件未在IE6中运行成功函数

jQuery ajaxForm插件未在IE6中运行成功函数,jquery,internet-explorer-6,Jquery,Internet Explorer 6,我正在使用jQuery插件通过AJAX提交文件上传表单。脚本提交表单,表单成功后运行uploadResponse(),将新行添加到页面上的中。它在Opera、Firefox、Safari、IE7和IE8中运行良好 但是,IE6在表单提交后不会运行uploadResponse()。脚本中的POST请求将运行,您可以在刷新页面时看到该文件。但是,uploadResponse()不会运行,DOM也不会更新 以下是脚本的一部分: /** * Ajaxified upload form */ $('f

我正在使用jQuery插件通过AJAX提交文件上传表单。脚本提交表单,表单成功后运行
uploadResponse()
,将新行添加到页面上的
中。它在Opera、Firefox、Safari、IE7和IE8中运行良好

但是,IE6在表单提交后不会运行
uploadResponse()
。脚本中的POST请求将运行,您可以在刷新页面时看到该文件。但是,
uploadResponse()
不会运行,DOM也不会更新

以下是脚本的一部分:

/**
 * Ajaxified upload form
 */
$('form#upload').ajaxForm(
{
    url: 'ajax/upload.php',
    success: uploadResponse,
    dataType: 'xml'
});

/**
 * Upload form response
 *
 * @param responseXML Returned from the AJAX POST
 */
function uploadResponse(responseXML)
{
    var displayName = $('display_name', responseXML).text();
    var fileName = $('name', responseXML).text();
    var directoryID = $('directory_id', responseXML).text();
    var abbrTitle = $('abbr_title', responseXML).text();
    var tableRow = 'file_' + tableRowCount;

    $('table#listing tbody').prepend(row(displayName, null, '', 'delete.php?directory_id=' + directoryID + '&file=' + fileName, 'Delete', null, tableRow, 'fileName jsHide', 'rename jsHide', 'delete jsHide', abbrTitle));
    $('td.jsHide').fadeIn();

    // AJAX renaming
    $('tr#file_' + tableRowCount).find('td.fileName').click(generateRenameForm);

    // Remove "no files" notficiation
    $('p#noFiles').remove();

    alternatingRows();
    tableRowCount++;
}
uploadResponse()
函数中的特定代码没有问题。它根本不运行(我使用
alert()
对它进行了测试)

此外,IE6还显示“此页面包含安全和非安全内容”对话框。所有的脚本、样式表等都是安全服务器上的本地脚本,所以据我所知,没有什么是不安全的。我已经仔细检查过了


谢谢你的帮助。

你在另一台电脑上测试过吗?可能是IE6中的一种安全设置。

您是否在另一台pc上测试过它?可能是IE6中的安全设置。

数据类型:xml是问题所在。我不知道我是从哪里学会这个把戏的(所有的功劳都归功于那个原始来源)。这就是最有可能解决此问题的方法:

将“datatype:xml”替换为

在开始使用xml响应之前,您需要执行以下操作:

function parseXMLResult(result) {
    var xmlDoc;
    if (typeof result == 'string') {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(result);
    } else {
        xmlDoc = result;
    }
    return xmlDoc;

}
希望这能解决你的问题

注册secure/in secure警告,您肯定至少有一个元素可能是通过http加载的image/css/js文件。这个问题不是IE6特有的,您应该在FireFox的地址栏中看到证书符号,上面有一个红色的“i”,表示页面中存在问题。
使用像这样的工具找出有问题的元素。

数据类型:xml是问题所在。我不知道我是从哪里学会这个把戏的(所有的功劳都归功于那个原始来源)。这就是最有可能解决此问题的方法:

将“datatype:xml”替换为

在开始使用xml响应之前,您需要执行以下操作:

function parseXMLResult(result) {
    var xmlDoc;
    if (typeof result == 'string') {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = "false";
        xmlDoc.loadXML(result);
    } else {
        xmlDoc = result;
    }
    return xmlDoc;

}
希望这能解决你的问题

注册secure/in secure警告,您肯定至少有一个元素可能是通过http加载的image/css/js文件。这个问题不是IE6特有的,您应该在FireFox的地址栏中看到证书符号,上面有一个红色的“i”,表示页面中存在问题。
使用类似的工具找出有问题的元素。

否,但这是默认的XP安装,因此即使默认安全设置不起作用,问题仍然存在。否,但这是默认的XP安装,因此即使默认安全设置不起作用,问题仍然存在。