Jag har utvecklat en autocomplete i JavaScript där jag gör en request (xmlhttprequest object) efter att användaren matat in 3 tecken. Dessa 3 tecken skickas som en parameter till följande sida:
$sQuery = $_REQUEST["qu"];
if(!empty($sQuery))
{
function GenerateQueryFile($sXML, $sXSL, $aParameters)
{
$xsltproc = xslt_create();
$filebase = "file://" . getcwd() . "/";
xslt_set_base($xsltproc, $filebase);
$aArguments = array('/_xml' => file_get_contents($sXML), '/_xsl' => file_get_contents($sXSL));
$sXHTML = xslt_process($xsltproc, 'arg:/_xml', 'arg:/_xsl', 'output.txt', $aArguments, $aParameters);
xslt_free($xsltproc);
}
GenerateQueryFile("xml/airports_new.xml", "xml/airports.xsl", array( 'queryString' => $sQuery));
header("Location: http://" . $_SERVER["SERVER_NAME"] . "/XSLT/output.txt");
}
PHP:n tar queryn och gör en XSL Transformation. XSLT:n producerar en text fil med en "named" JavaScript array som jag använder mig av.
Nu till problemet, i Firefox har jag inga problem, men i Internet Explorer så cachar den resultatet. Så när jag gör en ny request så får jag samma resultat tillbaka.
Denna kan enkelt testas med att mata in följande i url-fältet:
http://www.jeria.net/XSLT/result.php?qu=mil
Prova sedan följande:
http://www.jeria.net/XSLT/result.php?qu=ala
Notera att IE inte visar rätt resultat. Funkar i utmärkt i Firefox som sagt.
Har provat med följande i php filen utan framgång:
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>
Någon som vet hur jag kan undvika detta problem? Tacksam för svar