我试图做一个ajax请求
@H_502_2@$.ajax({
type: "post",url: "download.PHP",error: function(data,status,err){
alert(JSON.stringify(data));
},data: "fileid="+fileid
});
此请求提醒“{”readyState“:0,”responseText“:”“,”status“:0,”statusText“:”error“}”
我在谷歌搜索我所有想到的是一个跨站点ajax调用(这显然不是)
我已经尝试把完整的网址,并做同样的事情.
我唯一可以想到的是标题,我不知道会是什么问题.这是从firebug的请求头
@H_502_2@Host www.mydomain.com User-Agent Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept */* Accept-Language en-us,en;q=0.5 Accept-Encoding gzip,deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Connection keep-alive Content-Type application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With XMLHttpRequest Referer http://www.mydomain.com/ Content-Length 8 Cookie PHPSESSID=27b7d3890b82345a4fc9604808acd928我已经在另一个页面上添加了另一个请求,它的工作原理很好,但是这个请求的标题仍然是:
@H_502_2@Host www.mydomain.com User-Agent Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0 Accept text/plain,*/*; q=0.01 Accept-Language en-us,*;q=0.7 Connection keep-alive Content-Type application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With XMLHttpRequest Referer http://www.mydomain.com/differentpage.PHP Content-Length 33 Cookie PHPSESSID=27b7d3890b82345a4fc9604808acd928解决方法
我遇到了同样的问题:每当用户点击链接时,如何注册.
问题在于,如果您不停止弹出窗口,则ajax请求不会完成,并且您已经准备好了状态:0!
我已经做了上述的另一个版本,也许是更可读(即使更详细)
@H_502_2@/* -------------------------------------------------------------------------- * Before that add 'downloads' class to every anchor tag (link) in your page * This script does the rest * * remember to change 'your_PHP_file' with the one you use * -------------------------------------------------------------------------- */ $(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(); }; } } });