Server IP : 85.214.239.14 / Your IP : 3.12.163.23 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /srv/modoboa/instance/sitestatic/rest_framework/js/ |
Upload File : |
function replaceDocument(docString) { var doc = document.open("text/html"); doc.write(docString); doc.close(); } function doAjaxSubmit(e) { var form = $(this); var btn = $(this.clk); var method = ( btn.data('method') || form.data('method') || form.attr('method') || 'GET' ).toUpperCase(); if (method === 'GET') { // GET requests can always use standard form submits. return; } var contentType = form.find('input[data-override="content-type"]').val() || form.find('select[data-override="content-type"] option:selected').text(); if (method === 'POST' && !contentType) { // POST requests can use standard form submits, unless we have // overridden the content type. return; } // At this point we need to make an AJAX form submission. e.preventDefault(); var url = form.attr('action'); var data; if (contentType) { data = form.find('[data-override="content"]').val() || '' if (contentType === 'multipart/form-data') { // We need to add a boundary parameter to the header // We assume the first valid-looking boundary line in the body is correct // regex is from RFC 2046 appendix A var boundaryCharNoSpace = "0-9A-Z'()+_,-./:=?"; var boundaryChar = boundaryCharNoSpace + ' '; var re = new RegExp('^--([' + boundaryChar + ']{0,69}[' + boundaryCharNoSpace + '])[\\s]*?$', 'im'); var boundary = data.match(re); if (boundary !== null) { contentType += '; boundary="' + boundary[1] + '"'; } // Fix textarea.value EOL normalisation (multipart/form-data should use CR+NL, not NL) data = data.replace(/\n/g, '\r\n'); } } else { contentType = form.attr('enctype') || form.attr('encoding') if (contentType === 'multipart/form-data') { if (!window.FormData) { alert('Your browser does not support AJAX multipart form submissions'); return; } // Use the FormData API and allow the content type to be set automatically, // so it includes the boundary string. // See https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects contentType = false; data = new FormData(form[0]); } else { contentType = 'application/x-www-form-urlencoded; charset=UTF-8' data = form.serialize(); } } var ret = $.ajax({ url: url, method: method, data: data, contentType: contentType, processData: false, headers: { 'Accept': 'text/html; q=1.0, */*' }, }); ret.always(function(data, textStatus, jqXHR) { if (textStatus != 'success') { jqXHR = data; } var responseContentType = jqXHR.getResponseHeader("content-type") || ""; if (responseContentType.toLowerCase().indexOf('text/html') === 0) { replaceDocument(jqXHR.responseText); try { // Modify the location and scroll to top, as if after page load. history.replaceState({}, '', url); scroll(0, 0); } catch (err) { // History API not supported, so redirect. window.location = url; } } else { // Not HTML content. We can't open this directly, so redirect. window.location = url; } }); return ret; } function captureSubmittingElement(e) { var target = e.target; var form = this; form.clk = target; } $.fn.ajaxForm = function() { var options = {} return this .unbind('submit.form-plugin click.form-plugin') .bind('submit.form-plugin', options, doAjaxSubmit) .bind('click.form-plugin', options, captureSubmittingElement); };