为啥ajax一个接一个地发送请求
Posted
技术标签:
【中文标题】为啥ajax一个接一个地发送请求【英文标题】:why ajax sending request one after another为什么ajax一个接一个地发送请求 【发布时间】:2018-07-12 16:23:00 【问题描述】:我今天想知道。
在我的项目中,ajax 没有进行异步调用。请求一个接一个地发送。
在处理一个请求时,其余的所有请求都处于待处理状态。
您可以在下图中看到
这是昨晚发生的。
【问题讨论】:
能否提供发送 ajax 请求的代码? 希望链接***.com/questions/6685249/…能帮到你 function DelVideos(VideoID) var param = "VideoID": VideoID ;参数 = JSON.stringify(param); $.ajax( type: "Post", url: "/KnowledgeAreas/DelVideos", contentType: "application/json; charset=utf-8", data: param, success: function (data) $('#DelVideoModal ').find('button.close').click(); GetVideos(); ,错误:函数(响应)警报(响应);); ; 这是正常的 ajax 调用,只是它一直工作到昨晚。我不知道我的项目发生了什么。 请求一个接一个地发送 【参考方案1】:如何应用 Ajax 调用无关紧要。它与 ASP.NET 最相关的是管理会话。这里是官方documentation。
并发请求和会话状态
访问 ASP.NET 会话状态 每个会话都是独占的,这意味着如果两个不同的用户 并发请求,授予对每个单独会话的访问权限 同时。但是,如果对 相同的会话(通过使用相同的 SessionID 值),第一个请求 获得对会话信息的独占访问权。第二个请求 仅在第一个请求完成后执行。
如您所见,如果对同一会话发出两个并发请求(在您的情况下是这样),则在第一个请求得到响应后应用第二个请求。
编辑
如果您不希望这种行为,您可以使用SessionStateAttribute
装饰您的控制器并禁用访问会话。
[SessionState(SessionStateBehavior.Disabled)]
如果你只想读取会话的权限,你可以像这样添加属性。
[SessionState(SessionStateBehavior.ReadOnly)]
【讨论】:
谢谢。您的回答与我当前的问题有关。 我在我的 web.config 文件中使用以上是关于为啥ajax一个接一个地发送请求的主要内容,如果未能解决你的问题,请参考以下文章
浏览器在 ajax 请求上发送 Origin 标头,但不是通过简单的 HTTP Get 请求。为啥?