2016-10-12 9 views
-3

Так что интернет-исследователь делает это снова. В настоящее время у меня есть файл validation.php, где значения для текстового поля отправляются для проверки. Значение текстового поля считывается, и затем дается результат, чтобы сказать, действительно ли это или нет. Это отлично работает в любом другом браузере, кроме IE. Запрос ajax специально не работает. Любая помощь будет оценена по достоинству. Нижеприведенный сценарий отвечает за прием данных из окна ввода и отправку запроса через AJAX.IE 11 Ajax issue

$(document).ready(function() { 
    $("#email").blur(function() { 
     var username = $(this).val(); 
     if (username == '') { 
     $("#availability").html("Empty Input"); 
     } 
     else{ 
     $.ajax({ 
      url: "validation.php?uname="+username 
     }).done(function(data) { 
     if (data.includes("result-from-validation")){ 
      //DO SOMETHING 
     } 
     else { 
     // DISPLAY ERROR 
     } 
     }); 
     } 
    }); 
    }); 
+0

вы не указали способ указать не другие мудрее print_r ($ _ REQUEST) – EaBangalore

+0

Там ничего там Wouldn Не работайте над IE, если он работает в других браузерах. Вы получаете какие-либо конкретные ошибки? что ты уже испробовал? – Styphon

+3

@Styphon Ваше утверждение не совсем верно. Вы можете настроить свою формулировку. – SOFe

ответ

5

два вопроса:

  1. username действительно, на самом деле должен быть URI-закодирован перед отправкой в ​​части URI: url: "validation.php?uname="+encodeURIComponent(username) (или пусть JQuery сделать это, передав в качестве data: {uname: username}).

  2. Array#includes и String#includes - новые вещи в JavaScript. Неудивительно, что у старого браузера их нет.

    Оба могут быть polyfilled при желании (см ссылку выше), или вы, вероятно, можно использовать indexOf: if (data.indexOf("result-from-validation") != -1)

+1

Спасибо, похоже, что это был «Array # includes», это была проблема. Также добавили кодировку. Очень признателен – Sphinx