2017-10-06 26 views
0

私はajax呼び出しを行うとサーバーに到達しないという問題があります。私はこの問題について複数の投稿を見たことがありますが、これらの投稿は私のためには機能しません。 奇妙なことには、このコードは私がブレークポイントに当たるfirefoxでデバッガで起動するときに動作しているということです。しかし、私がデバッガなしでプロジェクトを開始すると、firfoxでもchromeでも動作しません。何がうまくいかないの?Asp.net MVC 5 Ajax呼び出しがメソッドを起動しない

これは私のAJAX呼び出しです:

$(document).ready(function() { 
     var events = [];    
     $.ajax({ 
      type: "GET", 
      url: "Agenda/GetEvents", 
      success: function (data) { 
       $.each(data, function (i, v) { 
        events.push({ 
         title: v.Subject, 
         description: v.Description, 
         start: moment(v.StartDateTime), 
         end: v.EndDateTime != null ? moment(v.EndDateTime) : null, 
         color: v.ThemeColor, 
         allDay: v.IsFullDay 
        }); 
        console.log("Pushing"); 
       }) 
       GenerateCalender(events); 
      }, 
      error: function (error) { 
       alert('failed'); 
      } 
     }) 

     function GenerateCalender(events) { 
      $('#calender').fullCalendar('destroy'); 
      $('#calender').fullCalendar({ 
       aspectRatio: 1.5, 
       defaultDate: new Date(), 
       timeFormat: 'HH:mm', 
       header: { 
        left: 'prev,next today', 
        center: 'title', 
        right: 'month' 
       }, 
       eventLimit: true, 
       eventColor: '#378006', 
       events: events, 
       eventClick: function (calEvent, jsEvent, view) { 
        $('#myModal #eventTitle').text(calEvent.title); 
        var $description = $('<div/>'); 
        $description.append($('<p/>').html('<b>Starttijd: </b>' + calEvent.start.format("DD-MMM-YYYY HH:mm "))); 
        if (calEvent.end != null) { 
         $description.append($('<p/>').html('<b>Eindtijd: </b>' + calEvent.end.format("DD-MMM-YYYY HH:mm "))); 
        } 
        $description.append($('<p/>').html('<b>Beschrijving: </b>' + calEvent.description)); 
        $('#myModal #pDetails').empty().html($description); 

        $('#myModal').modal(); 
       } 
      }) 
     } 
    }) 

そして、これは、それがAgendaController中で行く必要の方法である:

[HttpGet] 
    public JsonResult GetEvents() 
    { 
     var listofEvents = db.Events.ToList(); 

     return new JsonResult{ Data = listofEvents, JsonRequestBehavior = JsonRequestBehavior.AllowGet}; 
    } 

+0

最初に 'url:/ Agenda/GetEvents"、 '(ただし、常に' Url.Action() 'を使用してURLを正しく生成してください、そしてブラウザコンソールには何のエラーがありますか? –

+0

@StephenMuecke Iそれを修正していないUrl.Action()に変更しました。chromeでエラーは発生しません。このエラーが発生しました:XML解析エラー:要素が見つかりません場所:http:// localhost:60628/Agenda/GetEvents linenumber1、column1:私がエラーログオブジェクトを検索したときに、ログに記録しようとするとデータがundefiendであることがわかります – Diceble

+0

@StephenMueckeほとんどすべてがundefiendです...すべての中で最も奇妙なのは、StatusCode 200 – Diceble

答えて

0
[HttpGet] 
public JsonResult GetEvents() 
{ 
    var listofEvents = db.Events.ToList(); 

    return Json (Data = listofEvents, JsonRequestBehavior.AllowGet); 
} 
+0

あなたはあなたの答えをもう少し説明することができますか、それとも完全に理解していないか、ちょうどうまくいきません – Diceble

+0

私の解決策はありませんでしたか? –

0

事前にありがとう、私はすでに解決策を見つけました。問題はAjaxの呼び出しではありません。問題は、コントローラがそれを許可していて、GetEventsメソッドをallowanonymousにするのを忘れてしまったことです。私の悪いことはanyones時間を無駄にして申し訳ありません: ')私はこの投稿を削除する必要がありますか?それ以上の行動をとるべきではないのですか?

関連する問題