{"id":1218,"date":"2011-04-04T07:34:26","date_gmt":"2011-04-04T14:34:26","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/?p=1218"},"modified":"2011-04-04T07:34:26","modified_gmt":"2011-04-04T14:34:26","slug":"problema-de-entity-body-incluso-em-http-delete-request","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2011\/04\/04\/problema-de-entity-body-incluso-em-http-delete-request\/","title":{"rendered":"Problema de Entity Body incluso em HTTP DELETE Request"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style1218 () { return \"none\"; } function end1218_ () { document.getElementById('wqd1218').style.display = get_style1218(); } <\/script>Problema que detectei em algumas applica\u00e7\u00f5es que estamos desenvolvendo com Extjs+Jquery: Na m\u00e1quina de entrega o request do tipo DELETE funcionava tranquilamente, na m\u00e1quina de produ\u00e7\u00e3o hospedada no <a href=\"http:\/\/www.rackspace.com\/index.php\">Rackspace<\/a> quebrava. Como a m\u00e1quina de entrega estava dentro da nossa rede, suspeitei logo da conex\u00e3o, firewall e essas coisas.<\/p>\n<p>O <a href=\"http:\/\/twitter.com\/#!\/rponte\">@rponte<\/a> me deu a <a href=\"http:\/\/stackoverflow.com\/questions\/299628\/is-an-entity-body-allowed-for-an-http-delete-request\">dica desse post<\/a> que ele encontrou com o mesmo tipo de problema. Nunca tinha percebido que a <a href=\"http:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec9.html\">spec HTTP nem proibe e nem recomenda<\/a> corpo em DELETE. N\u00e3o faz muito sentido enviar corpo realmente em DELETE, mas at\u00e9 a\u00ed tudo bem.<\/p>\n<p>Para completar, o Extjs j\u00e1 previa esse problema e o <a href=\"http:\/\/dev.sencha.com\/deploy\/dev\/docs\/?class=Ext.data.JsonWriter\">JsonWriter<\/a> possui uma propriedade chamada &#8220;encodeDelete&#8221; para voc\u00ea explicitamente definir que n\u00e3o quer corpo em DELETE, por default j\u00e1 vem assim.<\/p>\n<p>No console do firebug eu utilizava o <a href=\"http:\/\/api.jquery.com\/jQuery.ajax\/\">$.ajax<\/a> e o <a href=\"http:\/\/dev.sencha.com\/deploy\/dev\/docs\/?class=Ext.Ajax\">Ext.Ajax<\/a> diretamente com a mesma url para enviar DELETE e funcionava, mas na aplica\u00e7\u00e3o n\u00e3o funcionava. Conversando com o pessoal da rede eles me disseram que trocaram o firewall recentemente e observando o log a chamada sequer passava por l\u00e1, ou seja, provavelmente ele j\u00e1 rejeita qualquer conex\u00e3o DELETE com body.<\/p>\n<p>Fui analizar o c\u00f3digo do Extjs e ele enviava um body, a diferen\u00e7a \u00e9 que era vazio, mas ia. Fiz um hack para destruir qualquer parametro quando a conex\u00e3o fosse para o DELETE e consertou, como pode ver no c\u00f3digo abaixo:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/885190.js\"> <\/script><br \/>\n<a href=\"https:\/\/gist.github.com\/raw\/885190\/c742a8aa8c1b7d1afce4a8a17ea888f22b9171fb\/hack.httpproxy.extjs.3x.js\">Link caso n\u00e3o consiga ver no seu reader.<\/a><\/p>\n<p id=\"wqd1218\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra manufacturer coupon<\/a>&#8220;. Maybe &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra discount coupons<\/a>&#8221; is a very much complicated question. Matters, like &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">coupons for viagra<\/a>&#8220;, are united numerous types of health problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a formula is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies. <\/p>\n<p><script type=\"text\/javascript\"> end1218_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problema que detectei em algumas applica\u00e7\u00f5es que estamos desenvolvendo com Extjs+Jquery: Na m\u00e1quina de entrega o request do tipo DELETE funcionava tranquilamente, na m\u00e1quina de produ\u00e7\u00e3o hospedada no Rackspace quebrava. Como a m\u00e1quina de entrega estava dentro da nossa rede, suspeitei logo da conex\u00e3o, firewall e essas coisas. O @rponte me deu a dica desse [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16,33,23,304,164,8,29],"tags":[156,165,372,222],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1218"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=1218"}],"version-history":[{"count":4,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1218\/revisions"}],"predecessor-version":[{"id":1222,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1218\/revisions\/1222"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=1218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=1218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=1218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}