2016-10-20 1 views
0

Все работает нормально, оно отправляет данные в URL-адрес, и данные попадают в базу данных просто отлично. Единственная проблема, с которой я столкнулся, заключается в том, что приведенный ниже код находится на моей странице index.php, он отправляет данные на страницу submitusername.php, и все работает, однако после отправки данных на страницу submit_ername URL-адрес превращается в «/index.php «username = blahblahblah», это не главная проблема, но это то, что я хотел бы узнать, как исправить/что ее вызывает.URL-адрес запроса HTTP-адреса

function submitUsername(){ 
    var submitData = new XMLHttpRequest(); 
    var username = document.getElementById('username').value; 
    submitData.onreadystatechange = function() { 
     if(submitData.readyState == 4 && submitData.status == 200) { 
      callback(submitData.responseText); 
     } 
    }, 
    submitData.open("GET", "submitusername.php?username="+encodeURIComponent(username), true); 
    submitData.send(); 
} 
+1

Ничто в коде вы показали бы сделать это. Как вы называете эту функцию? Что делает 'callback()' do? – Barmar

+0

Я предполагаю, что у вас есть форма с 'onsubmit =" submitUsername() "'. Это вызывает функцию, но затем она обычно отправляет форму. Если у формы есть 'method =" GET ", это изменит URL. – Barmar

ответ

1

Ничто в коде, который вы предоставили, не даст вам никакого эффекта.

Похоже, вы пытаетесь вызвать JavaScript при отправке формы, но форма отправляется нормально и загружается новая страница.

Вам необходимо предотвратить поведение представления формы по умолчанию.

Измените функцию обработчика событий, чтобы захватить объект Event и предотвратить поведение по умолчанию, а затем убедитесь, что вы привязываете обработчик событий соответствующим образом.

function submitUsername(evt){ 
    evt.preventDefault 
    var submitData = new XMLHttpRequest(); 

и

document.getElementById('myform').addEventListener('submit', submitUsername);