2011-08-22 42 views
1

我正在为我的Umbraco网站做AJAX功能。Umbraco - 检查请求是否为XmlHttpRequest

基本上我想要做的是当有人请求http://mysite.com/news与XmlHttpRequest标头,然后我想Umbraco返回下一页的JSON。

我一直在试图做的是找到合适的地方来检查Umbraco中的标题。基本上我想重写或继承一些类,我可以检查标题并根据标题返回Json或HTML中的页面。

我使用一把umbraco 4.7.0(1.0.4090.21631)

任何反馈会更受欢迎!谢谢!

回答

0

我可能会使用IIS7的URL重写模块来检测请求中的内容类型,然后使用/ jsonTemplate结尾重定向到相同的URL。然后,您将创建一个名为jsonTemplate的masterpage,其中包含一个宏,它将返回您的JSON。

这对于Umbraco很常见 - 指定一个单独的模板和一个单独的宏以返回相同内容的不同视图。查看http://blog4umbraco.codeplex.com/SourceControl/changeset/view/68424#1138733获取使用此方法返回RSS的XSLT宏的示例。

+0

谢谢,我一直以我自己的方式相当盲目,基本上是一个HttpModule,它检查请求标头并返回JSON中的Umbraco页面。你怎么看待这个想法? – raRaRa

+0

我会将您的答复标记为答案,因为它与我的解决方案最接近。通过创建我自己的HttpModule并检查标题,我确实走了自己的路。工程就像一个魅力:) – raRaRa

+0

这是有点相同的事情。建议检查altTemplate方法 - 对于RSS,JSON等非常适用。还有/ base允许您编写.NET类和方法,将它们注册到/config/restExtensions.config中,然后通过带有参数的URL调用它们 - 当我不使用altTemplate方法时,我通常使用它自己返回JSON。 –

0

您应该检查服务器端逻辑的Content-Type标头。您的Javascript应指定Content-Type,如application/json

+0

是的,我会这样做,但我不知道在服务器端的位置。基本上我想创建一个覆盖或继承一些Umbraco默认行为的类库,并执行此服务器端检查。有任何想法吗? – raRaRa

+1

您可以在您的asp.net应用程序中使用类似传统处理程序或WCF服务的东西吗?我从未使用Umbraco,但出于好奇,你会推荐它吗?我正在寻找从我被迫使用的可怕的CMS迁移出来,而Umbraco看起来很有希望。 – wsanville

+0

我最终写了一个HttpModule并订阅了一个事件,我在这里做了所有的检查。 我对Umbraco没有太多的经验,但是到目前为止我所经历的很好,开放源代码等。由于我没有使用任何其他.NET CMS,所以无法真正比​​较它。 – raRaRa

相关问题