sourcecode

$.ajax 게시물은 Chrome에서 작동하지만 Firefox에서는 작동하지 않습니다.

copyscript 2023. 8. 27. 09:45
반응형

$.ajax 게시물은 Chrome에서 작동하지만 Firefox에서는 작동하지 않습니다.

좋아요, 짧게 할게요.데이터베이스에 값을 저장하는 스크립트가 있습니다.Chrome, Safari에서는 완벽하게 작동하지만 Firefox 또는 IE에서는 작동할 수 없습니다..php 파일에 데이터가 게시되지도 않고 아약스가 전혀 시작되지 않는 것 같습니다.아무나요?

다음은 제 jquery 스크립트입니다.

$(document).ready(function(){
$("#dodaj").click(function(){
  event.preventDefault();
  var kategorija = $("#kategorija option:selected").val();
  var si = $("#si").val();
  var hu = $("#hu").val();
  var de = $("#de").val();
  var an = $("#an").val();
  var hr = $("#hr").val();

$.ajax({
    type: "POST",
    url: "dodaj_v_bazo.php",
    data: {"kategorija": kategorija, "si": si, "hu": hu, "de": de, "an": an, "hr": hr},
    success: function(data){
        alert( "Jed uspešno dodana."+data);
    }, 
});
return false;
});
});

제 php 파일의 내용은 다음과 같습니다.

$kategorija = $_POST['kategorija'];
$si = $_POST['si'];
$hu = $_POST['hu'];
$de = $_POST['de'];
$an = $_POST['an'];
$hr = $_POST['hr'];

$dodaj_v_bazo = "INSERT INTO jedi (kategorija, si, hu, de, an ,hr) VALUES ('$kategorija', '$si', '$hu', '$de', '$an', '$hr')";
mysql_query($dodaj_v_bazo) or die(mysql_error());

정의하지 않았습니다.event이벤트 핸들러의 매개 변수로, 따라서

event.preventDefault();

브라우저가 검색을 시도합니다.event세계적으로Chrome은 글로벌 범위에서 이벤트 개체를 제공하지만(따라서 오류가 없음) Firefox는 제공하지 않습니다(따라서 오류).

추가할 것을 제안합니다.event이벤트 핸들러에 대한 매개 변수:

$("#dodaj").click(function(event){
    event.preventDefault();
    // ...
});

다음과 같은 추가적인 차이점이 있습니다.정의하지 않은 경우event모수,event는 chrome에서 jQuery가 핸들러에게 전달하는 이벤트 개체와 다른 네이티브 이벤트 개체를 참조합니다.

jQuery를 통한 이벤트 처리에 대해 자세히 알아보려면 다음 문서를 참조하는 것이 좋습니다.

양식 제출 시 트리거된 경우 FF에서 비동기 호출이 작동하지 않을 수 있습니다.ajax 호출에 async:false를 추가하면 작동합니다.당신이 CORS를 통해 해결해야 하는 것은 그것이나 도메인 간 통화가 있다는 사실입니다.

파이어폭스가 누락되었습니다.$ajaxFirefox v49.0.2 이상에서 비동기 호출이 수정되었습니다.

$(document).ready(function(){
$("#dodaj").click(function(){
  event.preventDefault();
  var kategorija = $("#kategorija option:selected").val();
  var si = $("#si").val();
  var hu = $("#hu").val();
  var de = $("#de").val();
  var an = $("#an").val();
  var hr = $("#hr").val();

$.ajax({
    type: "POST",
    url: "dodaj_v_bazo.php",
    data: {"kategorija": kategorija, "si": si, "hu": hu, "de": de, "an": an, "hr": hr},
    success: function(data){
        alert( "Jed uspešno dodana."+data);
    }, 
});
return false;
});
});

위의 코드는 Firefox v49.0.2 이상으로 업그레이드할 때 작동합니다.

언급URL : https://stackoverflow.com/questions/18274383/ajax-post-working-in-chrome-but-not-in-firefox

반응형