0

jQuery ajax を使用して、アプリケーションにある aspx ページで WebMethod を呼び出そうとしています。私はこの記事に従っています: http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

ajax 呼び出しを実行しようとすると、WebMethod の結果ではなく、ページ自体 (myPage.aspx) が表示されることに気付きました。この時点で、基本的に上記の記事のコードをそのまま使用しています。JavaScriptは次のとおりです。

$(document).ready(function () {
// Add the page method call as an onclick handler for the div.
$("#Result").click(function () {
    $.ajax({
        type: "POST",
        url: "myPage.aspx/GetDate",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // Replace the div's content with the page method's return.
            $("#Result").text(msg.d);
        }
    });
});
});

WebMethod の myPage.aspx コード ビハインドは次のとおりです。

    [WebMethod]
    public static string GetDate()
    {
        return DateTime.Now.ToString();
    }

奇妙なことに、別のテスト ページで動作させたのですが、それを使用したい実際のページに統合しようとすると、統合されません。サイトや Web を検索しても、問題を解決するものは見つかりませんでした。

Sitecore 6.5 と .NET Framework バージョン 4.0 を実行しています。誰でも助けたり、洞察を提供したりできますか?

4

3 に答える 3

0

通常、これは、リクエストが POST でないか、application/jsonContent-Type が設定されていない場合に発生します。

私は Sitecore に詳しくありませんが、他の人はページ メソッドに干渉して問題を抱えているようです: How to use jquery ajax and webmethod with sitecore

于 2012-07-02T18:11:13.057 に答える
-1

問題は、Sitecore の URL リライターがリクエストを処理し、URL の/GetDate一部を無視することだと思います。

したがって、設定に aspx を追加する必要があります<setting name="IgnoreUrlPrefixes" />

于 2012-07-03T12:04:22.417 に答える