gpt4 book ai didi

jQuery GET 以及使用 IE 的 POST

转载 作者:行者123 更新时间:2023-12-01 08:18:33 24 4
gpt4 key购买 nike

我们使用 jQuery.ajax() 方法来请求 MVC 3 网站上多个页面上的服务器数据。这些请求始终标有“POST”ajax 参数类型,并且通常在页面加载时或可能在计时器上调用,也就是说,它们不是用户操作(例如鼠标单击)的结果。

当我们查看 (Elmah) 错误日志时,我们会看到以下许多条目:

A public action method 'GetMessageStats' was not found on controller 'Inbox.WebUI.Areas.Application.Controllers.StatusController'.

Controller 操作标有 [HttpPost] 例如

[HttpPost]
public JsonResult GetMessageStats()
{
MessageStatsViewModel model = new MessageStatsViewModel
{
TotalNoMessages = MailDB.GetMessageCount(),
MessagesInQueue = MailDB.GetQueueLength()
};

return Json(model);
}

这是调用客户端脚本:

$(function() {
var $totalMessages = $("#total-messages"),
$queuedMessages = $("#queued-messages");

function getStats() {
$.ajax({
type: "POST",
url: "/Application/Status/GetMessageStats",
dataType: "json",
cache: false,
success: function (data) {
$totalMessages.text(data.TotalNoMessages);
$queuedMessages.text(data.MessagesInQueue);
setTimeout(function() {
getStats();
}, 15000);
},
error: function (xmlHttpRequest, errorMessage, exception) {
throw errorMessage;
}
});
}

getStats();

});

经调查,某些浏览器(IE7/IE8,但也可能是其他浏览器)似乎除了所需的 POST 请求之外还发出 GET 请求。请注意,用户界面在这些浏览器下响应和行为正确,因此 POST 请求正在得到服务。

Elmah 将用户代理报告为:

Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1)

还有其他人遇到过这个问题吗?如果是这样,您是否找到了避免这种情况的方法?

谢谢。

最佳答案

对于它的值(value),回复:多余的 GET,我发现有一些工具栏/安全服务可以“检查”网址以确保它们有效。我相信 TrendMicro 拥有一个 Web of Trust 类型的插件,可以重新轮询站点以检查它们是否存在恶意软件。

您是否尝试过使用简写 ajax 方法,例如 $.post()?另外,如果您要获取数据,是否有需要 POST 的具体原因?

如果您通过 Fiddler 或您选择的工具生成请求,您在响应中是否会收到相同的错误?

关于jQuery GET 以及使用 IE 的 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com