Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mexicanox

[Resolvido] Rastrear Pedido nos Correios

Recommended Posts

Seguinte pessoal, eu to querendo usar ajax para rastrear um produto nos correios.

 

um exemplo de testes do proprio correio é esse

http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_TIPO=001&P_COD_UNI=SS123456789BR&P_LINGUA=001

 

acessando a pagina voces podem ver um rastreamento de um pedido ficticio.

 

O que eu estou tentando fazer é pegar a pagina acima e colocar dentro de uma div

 

O problema é que nao me retorna nada. No console do firebug aparece assim

http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_TIPO=001&P_COD_UNI=SS123456789BR&P_LINGUA=001 200 ok X 157ms

 

Se for uma pagina do meu proprio site funciona mas essa dos correios nao.

 

segue os codigos do ajax e a chamada a função

 

function GetXMLHttp() {
   if(navigator.appName == "Microsoft Internet Explorer") {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }else {
       xmlHttp = new XMLHttpRequest();
   }
   return xmlHttp;
}
var xmlRequest = GetXMLHttp();

function abrirPag(pagina,target){
var url = pagina;
xmlRequest.onreadystatechange = function(){
    if(xmlRequest.readyState == 1) document.getElementById(target).innerHTML = "Carregando...";
    if(xmlRequest.readyState == 4) document.getElementById(target).innerHTML = ""+xmlRequest.responseText;
}

xmlRequest.open("GET",url,true);
xmlRequest.send(null);

//alert(xmlRequest.readyState+"\n");
return url;
}

//CHAMADA A FUNCAO
function rastrearPedido(){
var tipo = document.getElementById("rasTipo").value;
var lingua = document.getElementById("rasLingua").value;
var codObj = document.getElementById("codObj").value;

//abrirPag("http-~~-//websro.correios.com.br/sro_bin/txect01$.QueryList?P_TIPO="+tipo+"&P_COD_UNI="+codObj+"&P_LINGUA="+lingua,"respostaPed");
}



 

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola mexicano,

fazer esse tipo de solicitação não vai ser possível, pois o própio sistema de segurança do navegador bloqueia uma solicitação a uma página externa,

ou seja, qualquer solicitação de via ajax a uma página que não está hospedada no mesmo servidor da página que a solicitou o navegador ira bloquear.

A solução para isso vai ser fazer a inclusão desta página externa com alguma linguagem de nível servidor(PHP, JSP, ASP...).

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajax não requisita arquivos externos diretamente.

 

a melhor forma nesse caso, é fazer a leitura com uma linguagem server-side, e então apartir do teu dominio, ler as informações q você precisar com ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajax não requisita arquivos externos diretamente.

 

Eu achei que poderia ser isso. mas eu queria ter certeza.

 

Eu trabalho com php, ai seria como para pegar a pagina que eu preciso ?

 

 

flws

Compartilhar este post


Link para o post
Compartilhar em outros sites

file_get_contents() ou cURL()

 

posta lá no fórum de php, que a galera pode te ajudar sobre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

New foi preciso desta vez, consegui resolver usando o codigo abaixo:

 

<?php
header("Content-Type: text/html; charset=ISO-8859-1",true);
$codObj = $_GET['codObj'];

$file = fopen ("http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_TIPO=001&P_COD_UNI=". $codObj ."&P_LINGUA=001", "r");
if (!$file) {
   echo "<p>Desculpe, mas ocorreu um erro ao rastrear o seu pedido.\n";
   exit;
}
while (!feof ($file)) {
   $line = fgets ($file);
   /* Isso só funciona se o título e suas tags estiverem na mesma linha */
   if(preg_match("/<center>*/",$line) == 1) break;
   else echo $line;
}
fclose($file);
?>

 

 

obrigado a todos, ate mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.