Lor*_*nzo 4 asp.net url jquery pagemethods sharepoint-2010
我在_LAYOUTSMS SharePoint 2010 的文件夹中部署了一个应用程序页面(aspx).
我想在[WebMethod]使用jQuery 标记属性的页面内调用一个方法.我正在使用以下代码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) {
[...]
}
});
});
Run Code Online (Sandbox Code Playgroud)
遗憾的是,此代码不起作用.问题在于URL:事实上,如果我使用这样的绝对URL,它就可以工作
var theUrl = 'http://server/sites/xxx/_layouts/MyProject/MyPage.aspx/MyMethod';
Run Code Online (Sandbox Code Playgroud)
我怎样才能以绝对的方式改变我的道路?
/_layouts/MyProject/MyPage.aspx/MyMethod
Run Code Online (Sandbox Code Playgroud)
在您的示例中等效于:
http://server/_layouts/MyProject/MyPage.aspx/MyMethod
Run Code Online (Sandbox Code Playgroud)
那是你的问题.以/开头,从根开始.你应该调整这个.如果它必须以某种方式动态,因为它可以在多个地方使用,您可能需要使用代码隐藏来注入路径或其他东西.如果这总是从静态位置运行,只需修改网址即可.
例如,如果您运行它的页面是:
http://server/sites/xxx/Somepage.aspx
Run Code Online (Sandbox Code Playgroud)
然后将其更改为
_layouts/MyProject/MyPage.aspx/MyMethod
Run Code Online (Sandbox Code Playgroud)
没有斜线.
如果您在子文件夹中,例如:
http://server/sites/xxx/Pages/Somepage.aspx
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
../_layouts/MyProject/MyPage.aspx/MyMethod
Run Code Online (Sandbox Code Playgroud)
..将带你一个文件夹.