Pergunta

Este código é de Protótipo.js.Examinei provavelmente 20 tutoriais diferentes e não consigo entender por que isso não está funcionando.A resposta que recebo é nula.

new Ajax.Request(/path/to / xml / file.xml, {
   method: "get",
   contentType: "application/xml",
   onSuccess: function(transport) {
      alert(transport.responseXML);
   }
});

Se eu mudar o responseXML para responseText, então ele me alerta sobre o arquivo XML como uma string.Esta não é uma página PHP que serve XML, mas um arquivo XML real, então sei que não são os cabeçalhos de resposta.

Foi útil?

Solução

Se transport.responseXML for nulo, mas você tiver um valor para transport.responseText, acredito que seja porque não é um arquivo XML válido.

Editar: Acabei de notar que em nosso código aqui sempre que solicitamos um arquivo XML definimos o tipo de conteúdo como 'text/xml'.Não tenho ideia se isso faz diferença ou não.

Outras dicas

Só quero compartilhar minha tarde trabalhando no assunto com resultado NULO para respostaXML respostas.Meus resultados foram exatamente como descritos na pergunta:responseText foi preenchido com o arquivo XML, responseXML era NULL.Como eu tinha certeza absoluta de que meu arquivo está em um formato XML válido, o erro deve estar em algum lugar diferente.

Como mencionado no Protótipo v1.7 documentação, defino o tipo de conteúdo como "aplicativo/xml".A resposta enviada era constantemente "text/html", não importa o quê.

Para resumir, o problema que encontrei foi que meu arquivo XML tinha o final ".gpx" pois é um padrão de fato para coordenadas GPS.A coleção de tipos MIME da minha instalação local do XAMPP Apache prevê apenas as terminações "xml" e "xsl".Depois de adicionar "gpx" e reiniciar o servidor, o programa funcionou perfeitamente como deveria.

No meu caso, existem três soluções:

1) edite o arquivo "mime.types" do Apache.Usando uma instalação do XAMPP, você pode encontrá-lo em "C:\xampp\apache\conf\mime.types".Procure pelo registro "application/xml" e altere conforme a seguir:

application/xml xml xsl gpx

Não se esqueça de reiniciar o servidor!

2) adicione o tipo MIME em um .htaccess da pasta apropriada.Abra ou crie um arquivo .htaccess e adicione a seguinte linha:

AddType application/xml xml xsl gpx

3) durante o processo de upload, altere o tipo de arquivo para "xml" em vez do que você tem

Espero reservar algum tempo para um de vocês.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top