Tenho uma webapp, que roda bonitinha. Mas com o opera, tenho alguns problemas na hora de passar parametros por POST e na url ao MESMO tempo.
Nao sei se na RFC do http 1.1 isso eh valido, mas explorer, mozilla, netscape e ateh lynx aceitam isso. Isso que eu falo, eh, ao mesmo tempo de passar parametros por um POST pelos inputs, eu passo pela action!
bem, se vc criar outo input hidden da ná mesma, vc tentou mandar assim??
daí deve funcionar em tudo qto é browser.
tá que é mei “porcão” + se funcionar, prá manter a compatibildade tá valendo né… hehehehe
a rfc nao suporta esse tipo de comando pq vai da interpretacao do web server
isto eh: os browsers do netscape e ie tao tratando sua request antes de enviar (o q eh ERRADO)… o opera segue as regras e por isso o webserver nao consegue entender seu request…
o mesmo problema do netscape e ie nao seguirem o padrao eh qdo eles tentam “chutar” qual o tipo de arquivo q tah sendo retornado, se eh xml, html, … quando eles deveriam simplesmente receber o que foi passado e ponto final…
Isso é provavelmente um bug no Opera, ou pelo menos deveria ser tratado como tal. No HTTP 1.1, URI eh URI, nao interessa se vc está usando POST, GET, DELETE, FUCKME ou qqer que seja o comando… e, pela definicao do RFC, uma URI eh:
URIs in HTTP can be represented in absolute form or relative to some
known base URI, depending upon the context of their use. The two
forms are differentiated by the fact that absolute URIs always begin
with a scheme name followed by a colon.
a URI indica o servico que o webserver deve retornar…
pelo que sei, os parametros lidos como ?a=b&c=d nao fazem parte do protocolo http e sao interpretados pelo webserver da maneira que ele bem entender, num eh isso?
de qq jeito, se o opera esta errado em enviar os parametros, basta fazer um proxy para ver o que o internet explorer e o netscape enviam na request… comparar com o que o opera envia… paulo, me manda o codigo que voce ta usando no seu form (bem diminuto) preu tenta no proxy aqui e mostrar os requests diferentes…
eu ainda assumo que o ie e o netscape parseam a URL ? e transforma eles em parametros a serem enviados via POST, o que nao eh o funcionamento default de um browser… eh opcional. agora se os dois realmente enviam no request:
abaixo vai o exemplo (bem zoado) de um form e seu request como deveria ser: (sei q o multi part e o boundary estao bizarros mas eh pra ilustrar…
deveria gerar o codigo a seguir
uma vez que o target eh xxx?a=b e os parametros sao o c e o d…
se o internet explorer e o netscape enviarem o request a seguir, eles estao errados ou nao?
no caso do opera estar errado, qual seria o codigo q ele envia q geraria tal erro? (pois nao consigo imaginar)
la estao os parametros e a url, tudo certinho… resultado? o meu opera eh igual ao meu internet explorer… as versoes estao escritas no header… testei com a 6.2 (ou 6.5) do opera e tambem deu o mesmo request…
qual c ta usando paulo?
paulo, instala o TCPSniffer (programa em java gratuito, faz parte do grinder versao 2.7 ou 2.8…)… o grinder esta no sourceforge. ele faz esse sniffing…