IE에서 작업에 응답하는 json으로 ajax 호출을 시도하고 있지만 아무 일도 일어나지 않습니다. 현재 다른 브라우저에서는 정상적으로 작동합니다.
나는 많은 곳에서 ajax와 IE에 몇 가지 일반적인 문제가 있다는 것을 읽었지만 해결책 중 어느 것도 도움이되지 않았습니다.
나는 또한 $ .ajaxSetup ({cache : false}); 그러나 그것은 그것을 고치지 않고 캐싱과 관련이없는 것 같습니다.
내가 높이 평가하는 모든 도움.
코드가 아래에 붙여집니다.
JS :
$(document).on("submit", ".loginForm", function(event) {
event.preventDefault();
var url=$(this).attr("action");
$.ajax({
url: url,
type: 'POST',
data: new FormData(this),
processData: false,
contentType: false,
datatype: "json",
success: function (data, status)
{
if(data.success == "success"){
window.location.replace("dashboard.php");
} else {
$('#loginResponse').html(data.success).css("color", "red").fadeIn().delay(2000).slideToggle();
}
}
});
});
PHP :
header("Content-Type: application/json", true);
if(isset($_POST['submit_login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$sql = 'SELECT user_id, first_name, password FROM arbor_admin_users WHERE username=?';
$stmt = $connection->prepare($sql);
$stmt->bind_param('s', $username);
$stmt->bind_result($uid, $fn, $pwhash);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0) {
while($stmt->fetch()){
// if ($password === $pw) {
if (password_verify($password, $pwhash)) {
session_start();
$_SESSION['logged_in'] = $uid;
$_SESSION['firstname'] = $fn;
// header("Location: ../dashboard.php");
echo json_encode(array('success'=>"success"));
exit();
} else {
echo json_encode(array('success'=>"Wrong username or password!"));
}
}
} else {
echo json_encode(array('success'=>"Wrong username or password!"));
}
}
오랜 시간 디버깅 끝에
data: new FormData(this),
IE에는 제출 버튼이 포함되지 않지만 다른 모든 브라우저에서는 포함됩니다.
그래서 그것을 고치기 위해 방금 제거했습니다.
if(isset($_POST['submit_login'])) {
문제 해결 :)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다