0

AJAX を学習していて、コントローラーを呼び出しましたが、機能していません。

私が抱えている問題は、エラーですが、0.5 秒後にアラートが消え、コンソール エラーがかなり無意味なことです。

どんな助けでも大歓迎です。

私のjQueryは次のようになります。

function AjaxVoteClick(itemId) {
    var Url = '@Url.Action("UpVote", "AJAX")' + '?ideaId=' + itemId;

    $.ajax({
        url: Url,
        type: 'POST',
        timeout: 60000,
        dataType: 'json',
        tryCount: 0,
        retryLimit: 3,
        success: function(data) {
            alert("Success");
        },
        error: function (httpRequest, textStatus, errorThrown) {
            alert(httpRequest + "Status = " + textStatus + ", error = " + errorThrown);
        }
    });
}

デバッグすると、リクエストは正常になり、正しい ID が返されますが、エラーが発生します。

コントローラーは本来の機能を実行していますが、とにかく表示します。

    [HttpPost]
    public virtual JsonResult UpVote(int ideaId)
    {
        IdeaGenEntities ctx = new IdeaGenEntities();

        var currentIdea = (from m in ctx.Ideas
                          where m.ID == ideaId
                          select m).Single();

        var model = new VoteModel();
        model.Initialize(currentIdea);

        int currentVotes = model.Votes;
        currentVotes += 1;

        currentIdea.Votes = currentVotes;
        ctx.SaveChanges();

        return Json(model);

    }

Firebug コンソールを見ると、ほとんど何も得られません。持続しない限り、エラーは0.5秒後に発生します。次に、ヘッダーにこれがあります:

application/json、text/javascript、/を受け入れます。q=0.01 Accept-Encoding gzip, deflate Accept-Language en-US,en;q=0.5 Content-Type application/json Cookie __utma=111872281.1986143499.1358265304.1358511066.1358786646.8; __utmz=111872281.1358265304.1.1.utmcsr=(直接)|utmccn=(直接)|utmcmd=(なし); ASP.NET_SessionId=natvmbqvjfnm11deiek1hngi; .ASPXAUTH=4C0D282B36C410B3FA8271342C22B0A4435D35CD8F2BFE5B58E3F2A643993963F56D3F410A4E586FC44DC68B5737F9E7EEC18FB32E629014DECAA43B818DC49358E618CA73815EB1BBF977CE04342146B7F5EA30BB7D0D2328FC3B75F1C4CA65 Host localhos Referer localhost User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 X-Requested-With XMLHttpRequest

編集: Http Fox エラーを追加します。

NS_BINDING_ABORTED と表示されます

そしてこれを示します:

(Request-Line) POST /AJAX/UpVote?ideaId=1 HTTP/1.1 Host localhost User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 Accept application/json, text/javascript 、/ ; q=0.01 Accept-Language en-US,en;q=0.5 Accept-Encoding gzip, deflate X-Requested-With XMLHttpRequest リファラー localhost Cookie __utma=111872281.1986143499.1358265304.1358511066.1358786646.8; __utmz=111872281.1358265304.1.1.utmcsr=(直接)|utmccn=(直接)|utmcmd=(なし); ASP.NET_SessionId=natvmbqvjfnm11deiek1hngi; .ASPXAUTH=4C0D282B36C410B3FA8271342C22B0A4435D35CD8F2BFE5B58E3F2A643993963F56D3F410A4E586FC44DC68B5737F9E7EEC18FB32E629014DECAA43B818DC49358E618CA73815EB1BBF977CE04342146B7F5EA30BB7D0D2328FC3B75F1C4CA65

そしてコンテンツには次のように書かれています:コンテンツの読み込み中にエラーが発生しました(NS_ERROR_DOCUMENT_NOT_CACHED)

4

2 に答える 2

0

私が最初に試みることは、リクエストを次のように変更することPOSTですGET

return Json(model);

return Json(model, JsonRequestBehavior.AllowGet);

于 2013-05-29T13:16:28.667 に答える