页面方法从jQuery调用到Sharepoint

我在MS SharePoint 2010的_LAYOUTS文件夹中部署了一个应用程序页面(aspx)。

我想在使用jQuery标记[WebMethod]属性的页面内调用一个方法。 我在document.ready()上使用以下代码:

 $("#btnOk").click(function () { var theUrl = '/_layouts/MyProject/MyPage.aspx/MyMethod'; $.ajax({ type: "get", dataType: "json", url: theUrl, data: {}, success: function (response) { [...] }, error: function (xhr, textStatus, errorThrown) { [...] } }); }); 

遗憾的是,此代码不起作用。 问题在于URL:事实上,如果我使用这样的绝对URL,它就可以工作

 var theUrl = 'http://server/sites/xxx/_layouts/MyProject/MyPage.aspx/MyMethod'; 

我怎样才能以绝对的方式改变我的道路?

 /_layouts/MyProject/MyPage.aspx/MyMethod 

在您的示例中等效于:

 http://server/_layouts/MyProject/MyPage.aspx/MyMethod 

那是你的问题。 以/开头,从根开始。 你应该调整这个。 如果它必须以某种方式动态,因为它可以使用多个位置,您可能需要使用代码隐藏来注入路径或其他东西。 如果始终从静态位置运行,只需修改url即可。

如果你正在运行它的页面是,例如:

 http://server/sites/xxx/Somepage.aspx 

然后将其更改为

 _layouts/MyProject/MyPage.aspx/MyMethod 

没有斜线。

如果您在子文件夹中,例如:

 http://server/sites/xxx/Pages/Somepage.aspx 

然后你可以这样做:

 ../_layouts/MyProject/MyPage.aspx/MyMethod 

..将带你到一个文件夹。