title: HTML form seems to be submitting *both* POST and GET?
body: <p>This is not a duplicate of questions such as <a href="https://stackoverflow.com/questions/4726809/send-both-post-and-get-in-a-form">this</a>, but rather the opposite: I have a form that I'm submitting via jQuery</p>
  
  <pre><code>    $('&lt;form&gt;', {
          action  : 'service',
          method  : 'post',
          target  : '_blank'
      }).append(
          $('&lt;input&gt;', {
              type    : 'hidden',
              name    : 'payload',
              value   : JSON.stringify(payload)
          })
      ).appendTo('body').submit().remove();
  </code></pre>
  
  <p>This is done so that I can open a different page with HTML.</p>
  
  <p>Since I need to submit quite a lot of complex information, what I actually do is serialize them all into a big JSON string, then create a form with only one field ("payload") and submit <em>that</em>.</p>
  
  <p>The receiving end has a filter that goes like this:</p>
  
  <ul>
  <li>if the method is POST,</li>
  <li>and there is only one submitted variable,</li>
  <li>and the name of that one variable is "payload",</li>
  <li><strong>then</strong> JSON-decode its value and use it to create fake GET data.</li>
  </ul>
  
  <p>So when the GET data grows too much I can switch methods without modifying the actual script, which notices no changes at all.</p>
  
  <p>It always worked until today.</p>
  
  <h1>What should happen</h1>
  
  <p>The server should receive a single POST submission, and open the appropriate response in a popup window.</p>
  
  <h1>What actually happens instead</h1>
  
  <p>The server does receive the correct POST submission...</p>
  
  <p>...apparently ignores it...</p>
  
  <p>...and immediately after <em>that</em>, the browser issues a GET with <em>no parameters</em>, and it is the result of that parameterless GET that gets (pardon the pun) displayed in the popup window.</p>
  
  <p>Quite unsurprisingly, this is always a "You did not submit any parameters" error. Duh.</p>
  
  <h1>What I already did</h1>
  
  <ul>
  <li>verified that this method works, and has always worked for the last couple of years with different forms and different service endpoints</li>
  <li>tried replacing the form with a hardcoded <code>&lt;FORM&gt;</code> in HTML, <strong>without any jQuery whatsoever</strong>. Same results. So, this is not a jQuery problem.</li>
  <li>tried with different browsers (it would not have helped if it only worked on some browsers: I need to support most modern browsers. However, I checked. Luckily, this failure reproduces in all of them, even on iPhones).</li>
  <li>tried sending few data (just "{ test: 0 }").</li>
  <li>tried halting the endpoint script as soon as it receives anything.</li>
  <li>checked Stack Overflow. I found what <a href="https://stackoverflow.com/questions/12303666/html-form-posts-twice-after-submitting">seems to be the same problem</a>, in <a href="https://stackoverflow.com/questions/24546365/html-form-sending-get-instead-of-post-on-form-submit">various</a> <a href="https://stackoverflow.com/questions/6192837/form-being-randomly-submitted-as-get-instead-of-post">flavours</a>, but it's of little comfort. <a href="https://stackoverflow.com/questions/28752954/form-always-submits-as-get-even-with-post-method">This one</a> has an interesting gotcha but no, it does not help.</li>
  <li>checked firewalls, proxies, adblockers and plugins (I'm now using plain vanilla Firefox).</li>
  <li>called the IT guys and asked pointed questions about recent SVN commits. There were none.</li>
  </ul>
  
  <h1>What I did not yet do</h1>
  
  <ul>
  <li>Check the HTTPS conversation at low level (I don't have sufficient access).</li>
  <li>Compared the configuration, step by step, of a server where this works and the new server where it does not.</li>
  <li>Quite clearly, put my thinking hat on. There <em>must</em> be something <em>obvious</em> that I'm missing and I'm setting myself up for a sizeable facepalm.</li>
  </ul>