Jump to content


Photo

Calculo Sedex Via Ajax - Onde Estou Errando?


  • Faça o login para participar
4 replies to this topic

#1 alfabetto

alfabetto

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 23/09/2006, 21:37

Minha primeira aplicação de ajax!

Estou utilizando ajax para calcular a tarifa de sedex quando o usuário informa o cep.

Código ajax usado:

function calculasedex(cepD, peso, valor){

var s = "40010";
var co = "01000000";
var cd = (cepD.value).replace(/\D/g,''); // removendo os caracteres não numéricos
var p = peso;
var v = valor;


// metodo ajax pega tarifa

function ajaxInit() {
var req;

try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(ex) {
try {
req = new XMLHttpRequest();
} catch(exc) {
alert("Esse browser não tem recursos para uso do Ajax");
req = null;
}
}
}

return req;
}


ajax = ajaxInit();
if(ajax) {

var urlScript = "CalculaSedex.php"
urlScript = urlScript+"?cep_origem="+co
urlScript = urlScript+"&cep_destino="+cd
urlScript = urlScript+"&peso="+p

ajax.open("GET", "urlScript", true);
ajax.onreadystatechange = function() {
if(ajax.readyState == 4)
{

if(ajax.status == 200)
{
alert("tarifa: "+ajax.responseText);
} else {
alert("Erro: "+ajax.statusText);
}
}
}
ajax.send(null);

}

} // end calculasedex



No inicío do arquivo php, para evitar uso de dados armazenado no cache, estou usando

<?php

$gmtDate = gmdate("D, d M Y H:i:s");
header("Expires: {$gmtDate} GMT");
header("Last-Modified: {$gmtDate} GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

...


As funções em php estão todas funcionando perfeitamente, mas o ajax.statusText me retorna "Not found".

Por que a url não é encontrada? não entendi o que ocorreu.


Agradeço a ajuda! :D


Nota: os códigos usados foram obtidos em fóruns e tutoriais, estou adaptando as minhas necessidades.

#2 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 24/09/2006, 11:28

Após essa parte:

var urlScript = "CalculaSedex.php" 
urlScript = urlScript+"?cep_origem="+co
urlScript = urlScript+"&cep_destino="+cd
urlScript = urlScript+"&peso="+p

Adicionar um alert e anota o valor, joga o endereço no browser pra página e veja o retorno do php, verifique se ele retorna o que você espera, senão o problema pode ser a URL que você está passando ou a página php não está devolvendo o que você espera.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#3 alfabetto

alfabetto

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 24/09/2006, 13:17

A url que retorna é:

CalculaSedex.php?cep_origem=01000000&cep_destino=99999999&peso=4


Está url é relativa ao arquivo onde está o código ajax, deveria funcionar?!


Mesmo colocando a url completa:

http://www.site-test...p...9999&peso=4

retorna "Not found".

Colocando na barra de endereço retorna o valor da tarifa - ex: 8.50

Onde estou errando?

Edição feita por: alfabetto, 24/09/2006, 13:34.


#4 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 24/09/2006, 16:09

Retire as aspas da variável urlScript que está no open()

ajax.open("GET", "urlScript", true);

Assim você está enviando a string urlScript e não a variável urlScript.

Edição feita por: xxALExx, 24/09/2006, 16:24.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#5 alfabetto

alfabetto

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 24/09/2006, 16:57

Não é que funcionou!

Este fórum está Show, encontrei muita informação e ajuda para meu primeiro "ajax".

Valeu a ajuda pessoal! (bimonti e xxALExx)

Abraços




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq