mod_wsgi neočekávané chování bookmarklet předložit nebo související databáze akci

hlasů
1

[Aktualizováno níže]

Mám trochu problém nasazení webu na apache s mod_wsgi s nějakým Funkce JavaScript bookmarklet; alpha web a použitelný zde: stemhub.org . Problém je v tom, že bookmarklet (což je tlačítko menu prohlížeče) předkládá na stránku jako

http://stemhub.org/submit/http://the-users-link.com/here

která pak vrátí formulář uložit metadata o odkazu. Funkce zobrazení (a baňka / Werkzeug app) zkontroluje databázi, aby zjistil, zda již byl přidán odkaz, pak se vrátí formulář s buď pre-existující nebo nově přidělený odkaz id, což předpokládám mohl vyvolat nějaký problém časování. Velmi zvláštně, když jsem poprvé odeslat odkaz, dostanu http://stemhub.org/submit/http://the-users-link.com/herestránku s „nebyl nalezen“ Chyba Apache, ale když jsem pak znovu načíst stránku, mám formu, jak bylo zamýšleno. Chybové protokoly obsahují zprávy o navlékání výjimky, ale dělat, když místo koncertuje jak se očekávalo, taky.

Tam je paralelní nasazení aplikace na jiném portu - stemhub.org:5000 -, který je spuštěn na Tornado a funguje dobře, stejně jako verze pro místní rozvoj.

Zde jsou bookmarklets na šanci mají problém:

portem 5000 verze: javascript:(function(){window.open('http://stemhub.org:5000/submit/'+encodeURIComponent(window.location.href),'height=200,width=150')}())

Problém port 80 verze:javascript:(function(){window.open('http://stemhub.org/submit/'+encodeURIComponent(window.location.href),'height=200,width=150')}())

UPDATE: Z nějakého důvodu, který patří do jiné značce měnící javascript metodu encodeURIComponentk encodeURIdělá vše fungovalo jak má, alespoň v FF a Chrome. Bude trvat Grahama Dumpleton radu o něco citlivější k tomu v budoucnu nicméně.

Položena 29/06/2010 v 22:15
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Ať už je váš problém je, jak jste uvedení druhého URL v URL nebude fungovat s Apache. Důvodem je, že Apache se zhroutí opakující lomítka na jediné lomítko a že jediné lomítko je pak vše, co aplikace hostitelem Apache uvidí v PATH_INFO.

Jinými slovy, není problém mod_wsgi a může dojít, pokud používáte jiné dynamické webové aplikace hostování mechanismy ve spojení s Apache, a to i ty non Python.

BTW, někteří mohou poukázat na to, že nemodifikovaná URL je v REQUEST_URI, ale spoléhat na to není nutně dobrý nápad, jak cvičit, jak se rozdělit, aby se a mapovat proti SCRIPT_NAME a PATH_INFO nemusí být přímočará v závislosti na tom, zda přepsání pravidla jsou používány v Apache.

Navrhuji, abyste namísto toho zkoumat druhý URL je součástí řetězce dotazu a nikoli cesta URL.

Odpovězeno 30/06/2010 v 00:14
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more