如何在 Sharepoint 2010 中使用 HTTP 处理程序发出 jQuery AJAX 请求?

Posted

技术标签:

【中文标题】如何在 Sharepoint 2010 中使用 HTTP 处理程序发出 jQuery AJAX 请求?【英文标题】:How to make jQuery AJAX request with a HTTP Handler in Sharepoint 2010? 【发布时间】:2011-10-19 11:33:44 【问题描述】:

我正在开发一个 SP 2010 可视 Web 部件,它需要通过 AJAX 加载一些数据。

我找到了this very helpful article,但我对此有些怀疑。

我有 Visual Web Part 项目,里面有 Visual Web Part 和一些其他文件。文章说我需要创建一个 .ashx 文件来充当 HTTP 处理程序。 这就是我所做的,我在项目的根目录中创建了一个“MyHandler.ashx”并放置了WebHandler 指令。但我不确定Assembly 指令。

然后它说我们需要为处理程序创建一个实现并将其指向它。我相信我的那部分没问题。

然后我需要通过 jQuery 进行实际的客户端调用。这是我不知道该怎么做的部分,因为我不知道正在部署 .ashx 的 url(如果它甚至正在部署......)。

我正在尝试:

$.get('/_layouts/SomeNamespace/MyHandler.ashx', ...)

但它不起作用...再次,不知道处理程序的 url...

我是 Sharepoint 开发的新手,所以请不要苛刻 =)

谢谢!

这是我的处理程序文件的简化版本。

MyHandler.ashx

<%@ WebHandler Language="C#" Class="SomeNamespace.MyHandler" CodeBehind="MyHandler.cs" %>

MyHandler.cs

namespace SomeNamespace

    public class MyHandler : IHttpHandler
    
        public bool IsReusable  get  return false;  


        public void ProcessRequest(HttpContext context)
        
            context.Response.Write("From the handler at " + DateTime.Now);
        

        // bunch of methods
     

【问题讨论】:

【参考方案1】:

我在项目的根目录下创建了一个“MyHandler.ashx”

您必须将 MyHandler.ashx 部署到 _layouts/SomeNamespace/ 文件夹。在 Visual Studio 解决方案资源管理器中使用 添加 -> SharePoint "_Layouts" 映射文件夹

【讨论】:

这正是我所缺少的。谢谢!

以上是关于如何在 Sharepoint 2010 中使用 HTTP 处理程序发出 jQuery AJAX 请求?的主要内容,如果未能解决你的问题,请参考以下文章

如何向 sharepoint 2010 中托管的 wcf 服务发出经过身份验证的请求?

如何在 SharePoint 2010 中查看/编辑 SQL 表的扩展属性 [重复]

如何从 Sharepoint 2010 用户组中获取自定义列值

SQL 扩展属性和 BCS Sharepoint 2010

如何在 Sharepoint 2010 Web 部件页中正确更新站点图标

Sharepoint 2010 在 jquery/javascript 中捕获 webpart 刷新