Sto per togliere i capelli rimanenti che ho, quindi per favore aiutatemi se sapete qual è il problema potrebbe essere ... Grazie. Anche le mie ricerche su google e su Google non sono state ripagate.jquery ajax con asp.net non funziona
Per prima cosa, sto utilizzando jquery-1.7.2.min.js e il modulo Web ASP.net 2.0.
Sto provando a effettuare una chiamata ajax utilizzando jquery ma continuo a ricevere errori di sintassi/errore di analisi. Ho provato molti modi diversi ma tutti hanno generato l'errore quando ho impostato il dataType su json.
Ecco quello che ho:
$.ajax({
type: "POST",
url: "UserList.aspx/GetTestJson",
data: {}, //have also tried "{}" and other options such as removing the line
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(data, textStatus, jqXHR){
alert('success');
},
//Using below instead of above makes no difference either
//success: function(data){
// alert('success');
//},
error: function(jqXHR, textStatus, errorThrown){
alert('errorThrown: ' + errorThrown);
}
});
e il metodo pagina aspx:
[WebMethod]
public static string GetTestJson()
{
return "Hello My World";
}
Ho provato la creazione di un servizio web troppo, ma ottenere lo stesso risultato. Sembra che la risposta che ritorna sia l'html completo per la pagina o xml dal servizio Web e poiché ho impostato il dataType su json, non è riuscito a analizzarlo. Se questo è il caso, come si imposta la risposta per restituire solo json?
Ecco un'altra cosa che ho provato senza fortuna: i messaggi
[WebMethod]
public static string GetTestJson()
{
HttpContext.Current.Response.ContentType = "application/json";
string json = JavaScriptConvert.SerializeObject("Hello My World");
return json;
}
errore che ottengo attraverso jQuery:
errorThrown.message = "Syntax error"
errorThrown.number = -2146827286
errorThrown.name = "SyntaxError"
textStatus = "parseerror"
jqXHR.status = 200
jqXHR.statusText = "OK"
jqXHR.readyState = 4
jqXHR.responseText = (the complete html of the page)
Tutte le idee o suggerimenti?
Grazie
L'impostazione semplice dell'intestazione HTTP Content-type non modifica magicamente il contenuto della risposta. Devi convertire i dati in JSON tu stesso. Inoltre, [WebMethod] viene in genere utilizzato per i servizi SOAP, non per i servizi Web in stile RESTful. – Dai
Ciò è parzialmente vero, i metodi di pagina vengono utilizzati specificamente negli scenari AJAX, impostano il tipo di risposta su JSON per impostazione predefinita – Jupaol
Puoi pubblicare l'errore esatto che stai ricevendo – Jupaol