当前位置: 首页 > 面试题库 >

MVC ajax调用-在哪里处理?

辛锦
2023-03-14
问题内容

我有一个正在构建的自滚动MVC框架,到目前为止,已经设法避免了任何AJAX调用的需要。但是,现在,我想创建一个实时更新提要。

我的问题是,通常将Ajax调用的处理程序存储在MVC中的什么位置?我应该将它们存储在进行呼叫的同一控制器中吗?

例如,如果我的域名www.example.com/browse/blogs(浏览器是控制器,博客是方法)正在对更新后的博客列表进行AJAX调用,则该调用将仅仅是访问www.example.com/浏览/更新列表或其他内容?

或,因此它是一个单独的仅AJAX控制器?www.example.com/ajax/update_blogs

你怎么做呢?


问题答案:

我想说一个Ajax请求与一个非Ajax请求完全相同:实际上,从HTTP协议的角度来看,它的工作方式完全相同。

唯一的区别是,您将返回一些非格式化的数据,例如JSON或XML (嘿,这与生成ATOM提要^^相同) ,或者仅返回HTML页面的一部分。

因此,我会将这些请求视为其他任何“正常” HTTP请求,并按照与非Ajax请求相同的方式放置它们。

半替代的想法可能是在您的控制器中仅执行一项操作:/browse/blogs-并始终调用该操作。

但是,它将检测是否正在通过Ajax请求,并且会:

  • 如果通过“正常”请求调用,则返回整页
  • 或仅返回一些数据(或页面的一部分)(如果通过Ajax请求调用)

注意:这不是一个“疯狂”的想法;例如,Zend
Framework提供了一些便利的工具(请参阅12.8.4.3。ContextSwitch和AjaxContext)



 类似资料:
  • 问题内容: 我有一个简单的生成器功能 然后,我初始化生成器并尝试在控制台中打印值: 初次致电的论点去了哪里?有没有一种在生成器函数中利用它的方法? 这是Babel REPL ,您可以在其中看到该结果。 问题答案: 该方法定义如下: 25.3.1.2 Generator.prototype.next(value) 该方法执行以下步骤: 让 摹 是 这个 值。 返回GeneratorResume( g

  • 如果我想在Keras中使用BatchNormize函数,那么我需要在开始时只调用一次吗? 我阅读了以下文档:http://keras.io/layers/normalization/ 我不知道应该在哪里调用它。下面是我试图使用它的代码: 我这样问是因为如果我用第二行运行代码,包括批处理规范化,如果我不使用第二行运行代码,我会得到类似的输出。因此,要么我没有在正确的位置调用函数,要么我想这没有多大区

  • 如果传入的请求是AJAX请求,则不会生成重定向。相反,带有422状态码的HTTP响应将返回到浏览器,其中包含验证错误的JSON表示。 这不管用!我试图通过ajax请求访问路由,它会重定向回来。 如果验证通过,代码将继续正常执行。但是,如果验证失败,将抛出一个Illumate\合同\验证\验证异常。自动捕获此异常,并生成重定向到用户先前的位置。验证错误甚至会自动Flink到会话! 现在我想知道lar

  • 我目前正在阅读JVM的最后一个规范。很清楚,每个线程都有自己的调用堆栈和自己的程序计数器,它跟踪(下一个)要执行的指令。我的问题是可能是倾倒,但从描述中,我找不到答案。 调用或方法时,当前程序计数器存储在哪里?换句话说,在调用一个方法之后,线程现在在哪里继续呢?

  • 在通过oauth成功登录后,我收到了大量数据。 我想对其余的api进行api调用。在留档(https://docs.atlassian.com/jira/REST/cloud/#auth/1/session-currentUser)的身份验证一章中,列表中的oauth身份验证是首选方法。 在上面的例子中,很明显用户名:密码验证要简单得多(https://developer.atlassian.co

  • 问题内容: 我有PyCharm,正在四处寻找git.exe,以使用我的存储库进行设置。 git.exe的路径是什么? 问题答案: 如果您在Windows上使用GitHub,则git.exe可能不在您的PATH中,但是您可以在以下位置找到它:C:\Users\ \AppData\Local\GitHub\PortableGit_ \bin\git.exe 我的情况就是这样,在Windows 7 +