var Ajax = { get: function (url, callback) { // XMLHttpRequest对象用于在后台与服务器交换数据 var xhr = new XMLHttpRequest() xhr.open('GET', url, false) xhr.onreadystatechange = function () { // readyState == 4说明请求已完成 if (xhr.readyState === 4) { if (xhr.status === 200 || xhr.status === 304) { console.log(xhr.responseText) callback(xhr.responseText) } } } xhr.send() }, // data应为'a=a1&b=b1'这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式 post: function (url, data, callback) { var xhr = new XMLHttpRequest() xhr.open('POST', url, false) // 添加http头,发送信息至服务器时内容编码类型 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') xhr.onreadystatechange = function () { if (xhr.readyState === 4) { if (xhr.status === 200 || xhr.status === 304) { // console.log(xhr.responseText); callback(xhr.responseText) } } } xhr.send(data) } } ;(() => { 'use strict' var apkUrl = '' $.get('/api/properties/apk', function (data) { apkUrl = data.value }) // Fetch all the forms we want to apply custom Bootstrap validation styles to const forms = document.querySelectorAll('.needs-validation') // Loop over them and prevent submission Array.from(forms).forEach((form) => { form.addEventListener( 'submit', (event) => { console.log(form.checkValidity()) // /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ if (!form.checkValidity()) { event.preventDefault() event.stopPropagation() } else { event.preventDefault() event.stopPropagation() Ajax.post( '/api/referrer', 'email=' + document.getElementById('email').value + '&referrer=' + GetQueryString('referrer'), () => {} ) window.location.href = apkUrl // /api/referrer } form.classList.add('was-validated') }, false ) }) })()