Usuário com melhor resposta
Chamadas de ajax com jquery

Pergunta
-
Boa tarde
Estou fazendo testes na empresa de modo a usar o ASP MVC 2 no desenvolvimento de uma nova aplicação mas ainda estou com alguns problemas.
O atual é o seguinte:
Na MasterPage eu quero mostrar os dados do usuário logado e para isso fiz uma chamada via ajax no evento onload() da página:
<body onload="CheckSession()">
A função javascript CheckSession() possui o seguinte código:
function CheckSession() { $.ajax({ type: "POST", url: "Home/CheckSession", data: null, success: function (result) { if (!result) { ShowLoginPanel(true); $('#nav-bar').html(''); } else { ShowUserInfo(result); MakeMenu(); } } }); }
O método CheckSession do Controller Home retorna um JSON com os dados do usuário logado de modo que a função javascript ShowUserInfo(result) mostra estes dados na tela.
Até aí tudo está funcionando tranquilamente, mas apenas se eu estiver na página inicial, ou seja no http://localhost:xxxx/
Caso eu tente especificar qualquer outro Controller ou Action não há acesso ao servidor. Por exemplo, se eu acessar o endereço http://localhost:xxxx/Home/About a função javascript é executada mas não é feito o acesso ao servidor, ou seja, ao método CheckSession do Controller Home.
Uma situação estranha é que se eu acesso http://localhost:xxxx/Home o ajax executa mas se eu acesso http://localhost:xxxx/Home/ (com / no final) o ajax não executa.
Já estou há algum tempo com esse problema e não consigo entender o que acontece. Já tentei limpar o cache a cada chamada mas não resolve o problema.
Alguém já passou por essa situação?
Obrigado!
Respostas
-
Obrigado pela resposta!
Mas essa maneira só funciona se o código javascript estiver dentro da MasterPage e no meu caso está em um arquivo separado onde eu organizo todos os scripts a serem usados.
Quebrei a cabeça até entender que realmente o erro é simples:
url: "/Home/CheckSession",
Era só colocar o / na frente. Neste caso a chamada vai ser feita sempre da raiz da aplicação, independente de qual controller estiver sendo acessado.
Por enquanto resolveu.
Mais uma vez obrigado pelas respostas!
Abraço
- Marcado como Resposta Leidival terça-feira, 8 de fevereiro de 2011 13:52
Todas as Respostas
-
-
-
-
Obrigado pela resposta!
Mas essa maneira só funciona se o código javascript estiver dentro da MasterPage e no meu caso está em um arquivo separado onde eu organizo todos os scripts a serem usados.
Quebrei a cabeça até entender que realmente o erro é simples:
url: "/Home/CheckSession",
Era só colocar o / na frente. Neste caso a chamada vai ser feita sempre da raiz da aplicação, independente de qual controller estiver sendo acessado.
Por enquanto resolveu.
Mais uma vez obrigado pelas respostas!
Abraço
- Marcado como Resposta Leidival terça-feira, 8 de fevereiro de 2011 13:52