Après avoir regardé plusieurs questions/réponses ici, je ne vois pas ce dont je pense avoir besoin. J'ai une page postée sur une page de serveur asp via ajax. La chaîne json retournée apparaît dans la console sur Firefox. Je peux voir les données de poste allant à la page asp, je peux voir la réponse qui estAnalyse des données JSON à partir du serveur ASP classique?
{"prénom": "Christopher", "nom": "Romero", "email": "[email protected] "," adminlvl ":" 00 "," message ":" Merci de vous être connecté! " }
Je peux également voir les valeurs de la chaîne ci-dessus dans l'onglet JSON dans Console -> ALL -> JSON. Aucune erreur n'est signalée dans la console. Voici mon javascript:
$('#loginsub').click(function() {
$.ajax({
url: "logincheck.asp",
type: "POST",
data: $('#loginform').serialize(),
dataType: "json",
success: function(data) {
console.log(data);
//alert(data.firstname + ' ' + data.lastname);
//alert(data[0].firstname + ' ' + data[0].lastname);
$.trim(data);
var json = $.parseJSON(data);
alert(json.firstname);
}
});
});
Voici l'aspic qui est en cours d'exécution sur le serveur sur logincheck.asp:
set cmd = Server.CreateObject("ADODB.Command")
with cmd
.ActiveConnection = cnnopen
.CommandText = storedproc
.CommandType = adCmdStoredProc
dim intCount,intItem
for each item in odcformdata
select case vartype(odcformdata(item)) 'this is searching for the correct data type to put into the parameter [type] argument below. (integers, currency, dates, & strings)
case 2 : .Parameters.Append .CreateParameter("@"&cstr(item),adInteger,adParamInput,len(odcformdata(item)),odcformdata(item))
case 6 : .Parameters.Append .CreateParameter("@"&cstr(item),adCurrency,adParamInput,len(odcformdata(item)),odcformdata(item))
case 7 : .Parameters.Append .CreateParameter("@"&cstr(item),adDate,adParamInput,len(odcformdata(item)),odcformdata(item))
case 8 : .Parameters.Append .CreateParameter("@"&cstr(item),adVarChar,adParamInput,len(odcformdata(item)),odcformdata(item))
end select
next
end with
set rs = cmd.execute
'do stuff with returned results from select or leave blank if insert/delete/etc stored procedure
if rs.EOF = false then
'Build json array based on fields returned from stored proc.
dim arrJSON
arrJSON = "{ "
while not rs.EOF
for each fields in rs.Fields
arrJSON = arrJSON & """" & fields.name & """: """ & fields & ""","
next
rs.movenext
wend
arrJSON = arrJSON & """message"": ""Thanks for logging in!"","
arrJSON = left(arrJSON, len(arrJSON)-1) & " }"
response.write arrJSON
end if
set rs = nothing
set cmd = nothing
odcformdata.removeall
Les alertes() dans le javascript ne sont pas des valeurs de retour que j'attendre, J'obtiens [object Object] retournant sur l'alerte quand je m'attends à ce que le tableau/chaîne JSON soit imprimé.
Quelqu'un avec quelques conseils pour moi? Je suis une recrue jquery et je m'améliore, mais ça m'énerve!
jQuery va analyser le JSON pour vous. Autrement dit, le paramètre data doit déjà être un objet et la première alerte (commentée) devrait fonctionner. Vous ne devriez pas avoir besoin d'appeler $ .parseJSON(). – nnnnnn
Quelle est la sortie si vous faites console.log (json) au lieu de alert (json.firstname)? – Tuan