Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte pessoal, eu to querendo usar ajax para rastrear um produto nos correios.
um exemplo de testes do proprio correio é esse
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.
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.
>
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
file_get_contents() ou cURL()
posta lá no fórum de php, que a galera pode te ajudar sobre.
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.
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...).