2014-09-29 3 views
-2

Буду признателен, если кто-нибудь скажет мне, что мне нужно сделать, чтобы этот код работал как в IE, так и в Firefox. В Firefox работают запросы подтверждения, но запрос AJAX не возникает. Firebug сообщает об этой ошибке: jquery-1.11.1.js (строка 9631). Это код JQuery найти на этой линии:jQuery AJAX работает с IE, но не с Firefox

xhr.send((options.hasContent && options.data) || null); 

JQuery код:

$(document).ready(function() { 
    $("#frmDelFiles").submit(function(event) { 
     var names  = ""; 
     var id_array = []; 
     var elements = document.getElementsByName('files2del'); 

     for (var i = 0, l = elements.length; i < l; i++) 
     { 
      if (elements[i].checked) 
      { 
      //alert("ip_attachments record " + elements[i].id + " - " + elements[i].value + " is checked."); 
      var response = confirm("Do you consent to delete the " + elements[i].value + " file?\n\nClick OK if Yes, otherwise Cancel."); 
      if (response == true) { 
       id_array[id_array.length] = elements[i].id; 
       if (names == "") { 
        names = elements[i].value; 
       } else { 
         names += ", " + elements[i].value; 
        } 
      } 
     } 
     } 

     if (names == "") { 
      alert("Zero files have been selected for deletion."); 
     } else { 
      $.ajax({ 
       type: "POST", 
       url: "del_ipa_rcd.php", 
       data: {id_array: id_array, names: names}, 
       dataType: "html", 
       success: function(response){ 
        $("#delete_result").html(response); 
        //alert(response); 
       } 
      }); 
     } 
    }); 
}); 

PHP:

<form name='frmDelFiles' id='frmDelFiles' method='POST' class='frmFileUpload'> 
<input type='submit' value='Delete Checked Files' name='delFiles' class='btnSubmit' /> 
</form> 

... 
... 

while ($attach_row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    echo "   <input type='checkbox' name='files2del' id='" . $attach_row['id'] . "' value='" . $attach_row['name'] . "'>\n"; 
    echo "   <a target='_blank' href='/php/dwnld_blob.php?column=content&tbl=ip_attachments&id=" . $attach_row['id'] . "'>" . $attach_row['name'] . "</a><br>\n"; 
} 
+0

У вас есть массивная уязвимость XSS в вашем флажке ' \ n"; 'Вероятно, вы хотите использовать систему шаблонов, а не конкатенацию строк. Я также подозреваю, что использование вами mysql_fetch_array является уязвимым для SQL-инъекции. Возможно, вам стоит дважды проверить ваш ответ XHR а также уязвимость XSS. Вы просто прямо взламываете HTML и визуализируете его из своего ответа ... –

+0

Итак ..... Какова была ошибка? –

+0

@Kevin, ошибка в AJAX del_ipa_rcd.php не вызвана в Firefox Firebug сообщает об ошибке в jquery.js в строке 9631. Могу ли я получить более описательную ошибку где-то в другом месте? –

ответ

0

Я был в состоянии решить эту проблему запроса AJAX, изменив несколько строк в html и одной строке в jQuery.

Вот HTML изменения:

<form name='frmDelFiles' id='frmDelFiles' method='POST' class='frmFileUpload'> 
    <input type='submit' value='Delete Checked Files' name='delFiles' class='btnSubmit' /> 
</form> 

изменено на:

<button class="btnSubmit">Delete Checked Documents</button> 

Вот это изменение

$("#frmDelFiles").submit(function(event) { 

один JQuery изменен на:

$("button").click(function() { 

Теперь запрос AJAX отлично работает как в IE, так и в Firefox.