2017-03-27 3 views
0

hier ist mein Code, die Symptome Liste von Web-Service perfekt in meine Maschine in Visual Studio 12.jquery Datentabelle Ajax gibt einen Fehler

$('#manLeg').mapster($.extend({}, options,{ 

    onClick: function (e) { 

     if (e.key === 'toes') 
     { 
      $.ajax({ 
       url: "SympsService.asmx/GetSymptoms", 
       method: "post", 
       dataType: "json", 
       data: JSON.stringify({ organ_name: "toes" }), 
       contentType: "application/json", 
       success: function (data) { 
        createDataTable('#choiseTable', null); 
        createDataTable("#symptomsTable", null); 
        $('#choiseTable').on("click", "tbody button", function (evt) { moveRow(evt, '#choiseTable', '#symptomsTable'); }) 
        $('#symptomsTable').on("click", "tbody button", function (evt) { moveRow(evt, '#symptomsTable', '#choiseTable'); }) 
        var sympList = 'GetSymptoms' ? JSON.parse(data.d) : data.d; 
        createDataTable('#symptomsTable', sympList); 


        function createDataTable(target, data) { 

         $(target).DataTable({ 
          destroy: true, 
          paging: false, searching: false, info: false, data: data, 

          columnDefs: [{ 

           targets: [-1], render: function() { 
            return "<button type='button'>" + (target == '#choiseTable' ? 'Remove' : 'Choose') + "</button>" 
           } 
          }], 
          columns: [ 
           { 
            'data': 'Sympt', 
            'title': 'toes Symptoms', 
            class: 'center' 
           }, 
          { 
           'data': null, 'title': 'Action' 

          } 
          ] 

         }); 
        } 


        function moveRow(evt, fromTable, toTable) { 

         var table1 = $(fromTable).DataTable(); 
         var table2 = $(toTable).DataTable(); 
         var tr = $(evt.target).closest("tr"); 
         var row = table1.rows(tr); 

         var obj = { 'Sympt': row.data()[0].Sympt }; 
         table2.row.add(obj).draw(); 
         row.remove().draw(); 

        } 
       }, 
       error: function (error, status) { 
        console.log(error); 
        debugger; 
       } 
      }); 

, aber wenn ich es in einer anderen Maschine auf Visual Studio laufen 13 kehrt zurückkehren Fehler in der console.log (Fehler). der Fehler ist:

dies macht mich verrückt, weil ich es auf dieser Maschine ausführen muss, kann aber nicht verstehen, was dieser Fehler bedeutet. Jede Art von Hilfe wird sehr geschätzt werden. Vielen Dank im Voraus.

+1

Die Fehlerbehandlung hat ** ** drei Parameter. Benutze alle von ihnen. – Andreas

+0

Diese Zeile var sympList = 'GetSymptoms'? JSON.parse (data.d): data.d; macht keinen Sinn für mich. Wenn Ihr Web-Service eine Zeichenfolge zurückgibt, müssen Sie JSON.parse. Wenn es zurückkehrt und Objekt, wird es wahrscheinlich bereits serialisiert. In jedem Fall wird sein Verhalten konsistent sein. – Bindrid

+0

Wenn Sie die Debugger-Zeile in Ihrem Visual Studio anhalten, sollten Sie das Fehlerobjekt untersuchen können. Überprüfen Sie den Wert in error.responseText oder error.response.JSON.message, um den tatsächlichen Fehler zu erhalten. – Bindrid

Antwort

0

ich es reorganisiert etwas und kommen mit dieser

$('#manLeg').mapster($.extend({}, options, 
     { 
      onClick: function (e) { 
       if (e.key === 'toes') { 
        doAjax(); 
       } 
      } 
     })); 

    function doAjax() { 

     $.ajax({ 
      url: "SympsService.asmx/GetSymptoms", 
      method: "post", 
      dataType: "json", 
      data: JSON.stringify({ organ_name: "toes" }), 
      contentType: "application/json", 
      success: function (data) { 
       createDataTable('#choiseTable', null); 
       createDataTable("#symptomsTable", null); 
       $('#choiseTable').on("click", "tbody button", function (evt) { moveRow(evt, '#choiseTable', '#symptomsTable'); }) 
       $('#symptomsTable').on("click", "tbody button", function (evt) { moveRow(evt, '#symptomsTable', '#choiseTable'); }) 
       var sympList = 'GetSymptoms' ? JSON.parse(data.d) : data.d; 
       createDataTable('#symptomsTable', sympList); 
      }, 
      error: function (responseError, status) { 
       console.log(responseError); 
       debugger; 
      } 
     }); 

    } 

    function createDataTable(target, data) { 

     $(target).DataTable({ 
      destroy: true, 
      paging: false, searching: false, info: false, data: data, 
      columnDefs: [{ 

       targets: [-1], render: function() { 
        return "<button type='button'>" + (target == '#choiseTable' ? 'Remove' : 'Choose') + "</button>" 
       } 
      }], 
      columns: [ 
       { 
        'data': 'Sympt', 
        'title': 'toes Symptoms', 
        class: 'center' 
       }, 
      { 
       'data': null, 'title': 'Action' 

      } 
      ] 

     }); 
    } 


    function moveRow(evt, fromTable, toTable) { 

     var table1 = $(fromTable).DataTable(); 
     var table2 = $(toTable).DataTable(); 
     var tr = $(evt.target).closest("tr"); 
     var row = table1.rows(tr); 

     var obj = { 'Sympt': row.data()[0].Sympt }; 
     table2.row.add(obj).draw(); 
     row.remove().draw(); 

    } 
+0

Es tut mir so leid für meinen späten Kommentar. Vielen Dank für deine Hilfe. Nun, ich habe es versucht eine andere Maschine und das läuft perfekt ... so kann sei das ist das problem der visuellen studio installation. danke –

+0

Solange du es funktioniert hast :) – Bindrid