/ / Windows 7 Sidebar Gadget, sans résultat pour un appel Ajax - jquery, ajax, windows-desktop-gadgets

Windows 7 Sidebar Gadget, ne donnant pas de résultat pour un appel Ajax - jquery, ajax, windows-desktop-gadgets

Dans mon code de gadget Windows, vous avez effectué un appel ajax (POST) à l'aide de jQuery dans SettingsClosing (event). Je regarde l'exécution de l'appel ajax à travers Violoneux. L'appel Ajax renvoie les résultats souhaités. Mais il ne déclenche pas le rappel de succès ajax. J'ai essayé le même code dans l'événement OnPageLoad () de la vue principale, il fonctionne bien ici. Mon code est comme ceci.

function Login(username, password) {
var url = "http://example.com/Auth.php";
var data = { pusername: username, ppassword: password };
jQuery.support.cors = true;
$.ajax({
type: "POST"
, dataType: "json"
, url: url, data: data
, success: function (refresh_token) {
System.Gadget.Settings.write("success", "true");
System.Gadget.Settings.write("dd", refresh_token);
var tok = refresh_token["refreshtoken"];
var name = refresh_token["name"];
System.Gadget.Settings.write("name", name);
System.Gadget.Settings.write("refreshtoken", tok);

}
, error: function (XMLHttpRequest, textStatus, errorThrown) {
System.Gadget.Settings.write("login_error", errorThrown);
System.Gadget.Settings.write("login_STATUS", textStatus);
}
});
}

function SettingsClosing(event)
{
//use this question to now if setting was closed with OK button
if (event.closeAction == event.Action.commit)
{
var username = $("#txtpUsername").val();
var password = $("#txtpPassword").val();
Login(username, password);

}
}

Toute aide est appréciée.

Réponses:

3 pour la réponse № 1

Comme l’appel ajax est asynchrone, il semblerait probable que le code n’a pas la possibilité de s’exécuter avant la fin de l’opération. Vous pouvez essayer de définir event.cancel sur true, puis déclencher la fermeture manuellement une fois votre appel ajax terminé. Référence MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/ms723677(v=vs.85).aspx