javascript the Ajax-Errore interno del server 500



jquery ajax error 500 (6)

È necessario utilizzare il behavior: JsonRequestBehavior.AllowGet in Post Json Return in C #

https://src-bin.com

Sto cercando di imparare AJAX per questo progetto al lavoro. Ho un sito che carica i farmaci che un paziente sta assumendo.

Io chiamo ricorsivamente questa funzione AJAX in modo che aggiunga una nuova tabella contenente un singolo farmaco e 7 giorni di storia. Sto riscontrando problemi nell'ottenere il codice da eseguire in FF e IE. Funziona perfettamente bene in cromo. Avevo degli avvisi che mostravano xmlhttp.status e questo è quello che ho ottenuto:

xmlhttp.status == 500 (errore interno del server).

Ho commentato tutta la mia ricorsione quindi è ridotta a questo piccolo pezzo di codice. (x tiene traccia del numero di medicine quindi so quando fermarmi)

function LoadMeds()


  if ( x == MaxMedCount )
  {
      document.getElementById("the_day").value = parseInt(document.getElementById("the_day").value)+7; 
  }
  if ( x == (MaxMedCount - 1) )
  {
      document.getElementById("x").value = x + 1;
      show();
  }
  else
  { 

      if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
      }
      else
      {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=function()
      {
          try 
          {      
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
              {     
                  var div = document.createElement('div');
                  div.innerHTML= xmlhttp.responseText;
                  document.getElementById('MedTable').appendChild(div);
                  document.getElementById("the_med_").value = the_med_;

              }

          }
          catch(e)
          {
              alert("Error");  
          }
      }
      xmlhttp.open("GET","URL with variables passed",true);
      xmlhttp.send();     
      document.getElementById("x").value = x + 1;
  } 

se è necessario più codice, fammelo sapere.


Answer #1

Decommentare la seguente riga: [System.Web.Script.Services.ScriptService]

Il servizio inizierà a funzionare correttamente.

[WebService(Namespace = "http://tempuri.org/")]


 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]


Per consentire a questo servizio Web di essere chiamato dallo script, utilizzando ASP.NET AJAX, rimuovere il commento dalla riga seguente.

[System.Web.Script.Services.ScriptService]

public class WebService : System.Web.Services.WebService 
{

Answer #2

Ho avuto lo stesso problema, quindi ho ricordato che per ragioni di sicurezza ASP non espone l'intero errore o traccia dello stack quando accede al tuo sito / servizio in remoto, come se non fosse in grado di testare un servizio web .asmx remoto, quindi ho remotato in il sever e monitorava i miei strumenti dev e solo in quel momento ho ricevuto il famigerato messaggio "Impossibile caricare file o assembly 'Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' o uno dei suoi dep .. . ".

Quindi accedi al server e esegui il debug da lì.


Answer #3

Ho corretto un errore come questo, cambiando i luoghi delle rotte in routes.php, ad esempio avevo qualcosa del genere:

Route::resource('Mensajes', 'MensajeriaController');
Route::get('Mensajes/modificar', '[email protected]');

e poi l'ho messo così:

Route::get('Mensajes/modificar', '[email protected]');
Route::resource('Mensajes', 'MensajeriaController');

Answer #4

Penso che i tuoi dati sulle stringhe di ritorno siano molto lunghi. quindi il formato JSON è stato corrotto. Dovresti modificare la dimensione massima per i dati JSON in questo modo:

Aprire il file Web.Config e incollare queste righe nella sezione di configurazione

<system.web.extensions>
  <scripting>
    <webServices>
      <jsonSerialization maxJsonLength="50000000"/>
    </webServices>
  </scripting>
</system.web.extensions>

Answer #5

Questo potrebbe essere un parametro errato per la tua chiamata SOAP; guarda il formato dei parametri nella sezione 'dati:' json - questo è il payload che stai passando - parametri e dati avvolti nel formato JSON.

La barra degli strumenti di debug di Google Chrome ha alcuni buoni strumenti per verificare i parametri e visualizzare i messaggi di errore - ad esempio, iniziare con la scheda Console e fare clic sull'URL che ha riscontrato errori o fare clic sulla scheda di rete. Dovrai visualizzare le intestazioni del messaggio, la risposta ecc ...





xmlhttprequest