none
WebMethod em asp.net não executa RRS feed

  • Pergunta

  • Tenho uma página onde preciso capturar uma imagem via webcam, estou com alguns problemas nessa página.

    1 - Estou usando o ModalPopUpExtender para exibir a imagem, porém quando clico no botão para ele capturar a imagem simplesmente o modal fecha.

    2 - Estou executando um webmethod e simplesmente não executa, coloquei um breakpoint mais nada, essa é minha chamada

    var canvas = document.getElementById('canvas');
    var context = canvas.getContext('2d');
    var video = document.getElementById('video');
    var cpf = document.getElementById('ctl00_MainContent_TabContainer1_Txt_Cpf');
            $(document).ready(function() {
                $('#snaplink').click(function () {
                    var image = document.getElementById("canvas").toDataURL("image/png");
                    image = image.replace('data:image/png;base64,', '');
                    $.ajax({
                        type: "POST",
                        url: 'CadastroFuncionario.aspx/UploadImage',
                        data: "{ 'imageData' : '" + image + "',cpf' : '" + cpf + "'}",
                        contentType: 'application/json; charset=utf-8',
                        dataType: 'json',
                        async: false,
                        success: function (response) {
                            alert('Imagem foi salva com Sucesso !!');
                        },
                        error: function() {
                            alert('Erro na captura da imagem');
                        }
                    });
                });
            });  


    Junior

    terça-feira, 6 de março de 2018 11:45

Respostas

  • Junior,

    Neste caso coloque breakpoint (ou um alert) após a linha $('#snaplink').click(function () { para verificar se o click no elemento de ID snaplink realmente é disparado.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 7 de março de 2018 15:08
  • Juliano alterei a chamada e deu certo ficou assim

    document.getElementById("snap").addEventListener("click", function () { coloquei a chamada ajax aqui
    
    });


    Junior

    quarta-feira, 7 de março de 2018 16:56

Todas as Respostas

  • Como está o código do WebMethod (assinatura e atributos)?

    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 6 de março de 2018 13:14
  • [WebMethod(EnableSession = true)]
    public static string UploadImage(string imageData,string cpf)
    {
    
    }


    Junior

    terça-feira, 6 de março de 2018 13:16
  • Tente assim meu caro:

    var canvas = document.getElementById('canvas');
    var context = canvas.getContext('2d');
    var video = document.getElementById('video');
    
    // Estava faltando o nome da propriedade para capturar o valor do campo de CPF
    var cpf = document.getElementById('ctl00_MainContent_TabContainer1_Txt_Cpf').value;
    
    
            $(document).ready(function() {
                $('#snaplink').click(function () {
                    var image = document.getElementById("canvas").toDataURL("image/png");
                    image = image.replace('data:image/png;base64,', '');
                    $.ajax({
                        type: "POST",
                        url: 'CadastroFuncionario.aspx/UploadImage',
                        data: { 'imageData': image, 'cpf': cpf },
                        contentType: 'application/json; charset=utf-8',
                        dataType: 'json',
                        async: false,
                        success: function (response) {
                            alert('Imagem foi salva com Sucesso !!');
                        },
                        error: function() {
                            alert('Erro na captura da imagem');
                        }
                    });
                });
            });  


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 6 de março de 2018 13:40
  • Juliano fiz algumas alterações, mais mesmo assim ele não executa e nem mesmo mostra nenhum alert, teria como saber se realmente executou o ajax ? 

    O cpf por enquanto não tem importância coloquei qualquer coisa lá.

    var canvas = document.getElementById('canvas');
    var context = canvas.getContext('2d');
    var cpf = '11111111111';
    var image = document.getElementById("canvas").toDataURL("image/png");
            image = image.replace('data:image/png;base64,', '');
            var pageUrl = '<%=ResolveUrl("~/Forms/RH/CadastroFuncionario.aspx") %>';
            $(document).ready(function() {
                $('#snaplink').click(function () {
                    var itens = {"imageData":image,"cpf": cpf}
                    $.ajax({
                        type: "POST",
                        url: pageUrl + "/UploadImage",
                        data: JSON.stringify(itens),
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        async: false,
                        success: function (data,status,xhr) {
                            alert('Imagem foi salva com Sucesso !!');
                        },
                        error: function(xhr,status,err) {
                            alert('Erro na captura da imagem');
                        }
                    });
                });
            });  


    Junior

    terça-feira, 6 de março de 2018 14:01
  • Abra o Developer Tools do navegador, na aba Rede (Network) e veja se ele adicionou alguma entrada após o click.

    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 6 de março de 2018 14:05
  • Dei uma olhada ele abre várias linhas no script tem status 200.

    Essa página herda da masterpage.


    Junior

    terça-feira, 6 de março de 2018 14:15
  • Mas para a url abaixo há algum registro? Qual o response que ele recebeu (pelo painel do Developer Tools)?
    /Forms/RH/CadastroFuncionario.aspx/UploadImage


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    terça-feira, 6 de março de 2018 14:20
  • Será que esse problema é pq estou executando dentro de um modalpopupextender ?

    Junior

    quarta-feira, 7 de março de 2018 14:40
  • No network ele não adicionou nenhuma entrada para /forms/rh/cadastrofuncionario/uploadimage

    O Que tem e são várias entradas é para a cadastrofuncionario.aspx


    Junior

    quarta-feira, 7 de março de 2018 14:56
  • Junior,

    Neste caso coloque breakpoint (ou um alert) após a linha $('#snaplink').click(function () { para verificar se o click no elemento de ID snaplink realmente é disparado.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 7 de março de 2018 15:08
  • Juliano alterei a chamada e deu certo ficou assim

    document.getElementById("snap").addEventListener("click", function () { coloquei a chamada ajax aqui
    
    });


    Junior

    quarta-feira, 7 de março de 2018 16:56