我遇到了同样的问题:每次用户单击链接时如何注册。
实际上,问题在于,如果不停止弹出窗口,则ajax请求不会完成,并且您会得到readyState:0!
我已经完成了上述操作的另一个版本,该版本可能更易读(即使更冗长)
$(document).ready( function(){ // Check if there is any link with class 'downloads' if ( typeof $('.downloads') != 'undefined' ) { var links = $('.downloads'); // Run this for every download link for ( var i = 0; i < links.length; i++ ) { // Set click behaviour links[i].onclick = function(e) { // Get download name var attr = this.attributes, href = attr.href.textContent, elem = href.split('/'), elem = elem[elem.length - 1]; // Send the download file name and only after completing the request let the user download the file $.ajax( { type : "POST", dataType : "text", // 'your_php_file' must be an ABSOLUT or RELATIVE path! url: your_php_file, // 'elem' is a variable containing the download name // you can call it in your php file through $_POST['download_name'] data: { download_name: elem }, // here we go magic: // after the request is done run the popup for the download complete: function() { window.location.href = href; } }); // Stop default behaviour until ajax request has been done e.preventDefault(); }; } }});


