jQuery / AJAX正在开发IIS5.1但不支持IIS6

时间:2010-06-07 21:38:23

标签: asp.net jquery ajax iis

我在这里遇到一个奇怪的问题。我有代码使jquery ajax调用Web服务并使用jquery动态添加控件。在运行IIS 5.1的开发机器上一切正常,但在部署到IIS 6时没有。我正在使用VS2010 / ASP.Net 4.0,C#,jQuery 1.4.2和jQuery UI 1.8.1。我为每个人使用相同的浏览器。

部分虽然有效。代码会将控件添加到页面中,但在我单击它们之前它们是不可见的(尽管它们不可见)。我认为这是一个CSS问题,但风格也在那里。

ajax调用如下所示:

$.ajax({
            url: "/WebServices/AssetManager.asmx/Assets",
            type: "POST",
            datatype: "json",
            async: false,
            data: "{'q':'" + req.term + "', 'type':'Condition'}",
            contentType: "application/json; charset=utf-8",
            success: function (data)
            {
                res($.map(data.d, function (item)
                {
                    return {
                        label: item.Name,
                        value: item.Name,
                        id: item.Id,
                        datatype: item.DataType
                    }
                }))
            }
        })

更改内容类型会导致自动填充失败。我检查了四倍,所有路径都正确,IIS中没有启用文档页脚,我没有使用IIS压缩。

任何想法为什么页面将在IIS 5中正常显示并正常工作,但仅部分在IIS 6中? (如果它完全失败了,那就更有意义了!)。它是jQuery还是CSS问题?

编辑:我正在使用“contentType:”application / json;“charset = utf-8”我复制了一个有app / javascript的测试调用。

@Gaby:我很清楚服务器与CSS或javascript无关,但是,这是代码之间的唯一区别。

我的本​​地开发机器(IIS 5)和服务器(iis 6)之间的所有jquery / css文件都是相同的。

@jaymz:我会给小提琴手试试看是否有区别。我正在使用IE8,但它没有进入兼容模式。

解决方案:(兼容性模式!) 在检查了Fiddler中的所有内容并发现没有差异之后,我在Firefox中尝试了它,它在那里工作。让我思考,当然,我错了,IE WAS进入兼容模式。显然,默认情况下它将在Intranet上使用兼容模式,但不使用localhost(恰好是IIS的不同版本)。我试过IE7并得到了同样的东西。我需要更改我的代码,以确保它也适用于IE7。

2 个答案:

答案 0 :(得分:2)

您是否通过跟踪器运行请求?尝试在IE中使用Fiddler,看看标题/内容的返回方式是否与2个不同的服务器不同。

在我的头脑中,我只能认为IE(如果它是IE8,你没有提到你正在使用的浏览器),在看到IIS 5时使用的是Compatability模式,而不是IIS 6。可能是出路,但标题应该让你更多地了解不同的东西。

答案 1 :(得分:0)

仔细检查是否已使用IIS 6将所有内容部署到服务器上 例如jQuery 1.4.2和jQuery UI 1.8.1等