1

如标题所示,我有一个运行良好的 asp.net 4.0 Web 表单项目。当我尝试将 jquery 从 1.7.2 移动到 1.9.0 时,我得到

HTTP 405.0 - 不允许的方法

当我尝试通过 ajax 加载 htm 文件时。导致错误的示例代码

$("#samplediv").load("/htmlParts/ComunicazioniAlerts.htm?p=" + now(), function () {
    alert('loaded');
}); 

与旧 jquery 版本完美配合的代码。

我将升级置于备用状态,这似乎是一个方法/动词问题,但仅在升级 jquery 时才显示,就好像他们改变了他们需要页面的方式一样。

4

1 回答 1

1

成立。我在我的应用程序中使用了许多 ajax 调用,为了避免重复我把这个放在我的应用程序之上

$.ajaxSetup({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: "{}",
    dataType: "json"
});

在 1.7.2 中,这不适用于一直使用 GET 方法的 $.load() 。
现在在 1.9.0 中,$.load 也会考虑 $.ajaxsetup,使用 POST 方法为 htm 文件发送请求,而 IIS 拒绝该请求。

可能的解决方法:
- 在 IIS 上启用静态元素上的 POST 动词(我不知道该怎么做,这是一个技巧,可以安装我可能使用的所有 iis。糟糕)
- 从 $.ajaxsetup 中删除 POST,再次添加到所有$.ajax 请求(无聊且冗长)
- 将所有 $.load 替换为 $.get,必须编写代码将生成的 html 添加到所需的 div(同样,无聊且冗长)。

任何解决方法表示赞赏。

于 2013-01-18T15:54:02.017 回答