I have an iframe that is injected into an arbitrary webpage by a bookmarklet. It points to \[code\]http://localhost:5000/test\[/code\], which is a simple HTML page that runs the following Javascript:\[code\]$.ajax({ type: "POST", url: "http://localhost:5000/parse", data: {data:"hello world"}}).done(function( msg ) { console.log("Success!!", arguments);}).fail(function(jqXHR, textStatus, errorThrown) { console.log("Error", arguments);});\[/code\]I can see in the web inspector that the call is made, but it sits as (pending) until the request times out 30 seconds later. The server logs show that the server isn't being hit at all. The odd thing is that if I remove the data parameter in the ajax request, the server gets hit and things work as expected.\[code\]$.ajax({ type: "POST", url: "http://localhost:5000/parse"}).done(function( msg ) { console.log("Success!!", arguments); // this works.});\[/code\]I wouldn't expect cross-domain policy issues to be an issue since the iframe and the ajax request target are on the same domain. What am I missing here? Is there something at the browser level that is preventing this request from going through?