jQuery post respond with readyState:0, status:0
If the browser switches the web page while an XHR request is still in progress (the user clicked a link, the back button, …), this XHR request will be cancelled with exactly your error.
Have a look at the following blog post, where the issue is explained in depth: http://bartwullems.blogspot.de/2012/02/ajax-request-returns-status-0.html
You forgot to tell jQuery that the server is returning JSON:
var jqxhr = $j.post(myPHP, function() { alert("success"); }, "json") // here .success(function() { alert("second success"); }) .error(function(data) { alert(JSON.stringify(data)); }) .complete(function() { alert("complete"); });