У меня есть страница входа в JQuery / AJAX, которая отлично работает во всех браузерах, кроме Chrome.Кажется, я столкнулся с проблемой в Chrome, которая была рассмотрена на Проблемы с jQuery getJSON при использовании локальных файлов в Chrome - некоторые говорят, что это ошибка, другие говорят, что это хорошая безопасность.Я говорю, что это расстраивает.
Я должен добавить, что вход на самом деле работает, это AJAXiness, который ломает.Решение состоит в том, чтобы добавить - allow-file-access-from-files в среду запуска.Хорошо, но как это решает проблему для посетителей сайта, которые используют Chrome?
Как пользователю Chrome было бы иронично иметь код для проверки пользователей с Chrome и сказать «использовать что-то еще».
Кто-нибудь знает, как можно обойти эту проблему?
Для чего стоит, вот код:
$(document).ready(function()
{
$("#login_form").submit(function()
{
//remove all the class add the messagebox classes and start fading
$("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn(1000);
//check the username exists or not from ajax
$.post("/ajaxsignin.php",{email:$('#email').val(), password:$('#password').val(), remember:$('#remember').val(), rand:Math.random()} ,function(data)
{
if(data.success) //if correct login detail
{
/////////////////////////////////////////////////////////////////////
// if I put an alert() here, Chrome just doesn't see it but all other browsers do
//////////////////////////////////////////////////////////////////////
document.getElementById("msgbox").innerHTML='Sign in successful';
document.getElementById("topmenutext").style.paddingTop='3px';
document.getElementById("topmenutext").innerHTML="BUG REPORT |sign out|contact|help";
var sPath = window.location.pathname;
var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
if(sPage == "register.php" || sPage == "index.php" || sPage == ""){
window.location.href='menu.php';
}
else{
disablePopup();
}
}
else //if login failed
{
$("#msgbox").fadeTo(200,0.1,function() //start fading the messagebox
{
//add message and change the class of the box and start fading
$(this).html('Login failed - perhaps you need to register for an account').addClass('messageboxerror').fadeTo(900,1);
});
}
},"json");
return false; //not to post the form physically
});
//now call the ajax also focus move from
$("#submitbtn").click(function()
{
$("#login_form").trigger('submit');
});
});