/ / Windows 7 Sidebar Gadget, não obtendo resultado para uma chamada Ajax - jquery, ajax, windows-desktop-gadgets

Windows 7 Sidebar Gadget, não obtendo resultado para uma chamada Ajax - jquery, ajax, windows-desktop-gadgets

No meu código de gadget do Windows, fiz uma chamada ajax (POST) usando jQuery em SettingsClosing (event). Eu assisto a execução de chamadas ajax através Violinista. A chamada Ajax está retornando os resultados desejados, mas não está acionando o ajax de retorno de chamada bem-sucedido. Eu tentei o mesmo código no evento OnPageLoad () da visualização principal, ele está funcionando bem lá, meu código é assim

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);

}
}

Qualquer ajuda é apreciada.

Respostas:

3 para resposta № 1

Como a chamada ajax é assíncrona, parece provável que o código não tenha a oportunidade de ser executado antes da conclusão da operação. Você pode tentar definir event.cancel para true e, em seguida, acionar o fechamento manualmente após a conclusão da sua chamada ajax. Referência do MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/ms723677(v=vs.85).aspx