Domanda

Sto riscontrando un problema con IEMobile durante l'accesso al mio sito. Un certo reindirizzamento che utilizzo ha un codice di risposta 302 e le intestazioni (sì, questo è il motore di app):

Server         Development/1.0 Python/2.5.2
Date           Tue, 04 Nov 2008 16:47:02 GMT
Content-Type   text/html; charset=utf-8
Cache-Control  no-cache
Location       http://localhost/games/edit-game.html?game=110&frame_to_edit=3#input-top
Content-Length 0

Funziona bene per la maggior parte dei browser. Immettere IEMobile (tramite Windows Mobile 6.1). Dopo aver ricevuto questa risposta, IEMobile si dirige verso

http://localhost/games/edit-game.html?game=110&frame_to_edit=3

Nota il # input-top mancante. Cosa posso fare?

È stato utile?

Soluzione

Leggendo RFC2616 specifica

  

Posizione: absoluteURI

dove l'URI assoluto è definito da RFC2396

Tracciando la definizione di absoluteURI, il carattere # non fa parte della definizione URI, questo è confermato dalla sezione 4.1

  

4.1. Identificatore di frammento

     

Quando viene utilizzato un riferimento URI   eseguire un'azione di recupero sul
  risorsa identificata, facoltativa   identificatore di frammento, separato da
  l'URI con un tratteggio incrociato (" # ")   carattere, è costituito da ulteriori
  informazioni di riferimento per essere   interpretato dal programma utente dopo   l'azione di recupero è stata   completato con successo. Come tale, esso   non fa parte di un URI, ma spesso lo è   utilizzato insieme a un URI.

In breve, #fragment non è non parte dell'URI e viene rimosso dal browser come non parte dell'intestazione Location :.

Altri suggerimenti

Dave ha ragione, Google cerca di risolvere lo stesso problema.

Brutta soluzione: usa un tag meta refresh invece di reindirizzare se vuoi supportare quel browser.

C'è poco che puoi fare; sembra essere un bug nel tuo browser (sembra che gli implementatori abbiano perso un errore RFC 2616).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top