Вызовы метода страницы из jQuery в Sharepoint - PullRequest
4 голосов
/ 05 мая 2011

У меня есть страница приложения (aspx), развернутая в папке _LAYOUTS MS SharePoint 2010.

Я бы хотел вызвать метод внутри этой страницы, помеченный атрибутом [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) {
            [...]
        }
    });
});

Этот код, к сожалению, не работает. Проблема с URL: на самом деле это работает, если я использую абсолютный URL, как это

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

Как я могу превратить свой путь в абсолют?

1 Ответ

6 голосов
/ 05 мая 2011
/_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

.. возьмет вас в одну папку.

...