Chrome和–allow-file-access-from-files
我有一个jquery / AJAX登录页面,可以在Chrome以外的所有浏览器中使用。 似乎我在Chrome中遇到了一个问题,这个问题涉及使用Chrome中的本地文件的jQuery getJSON问题 – 有人说这是一个错误,其他人说这是一个很好的安全性。 我说这很令人沮丧。
我应该补充说,登录实际上是有效的,这是打破的AJAXiness。 解决方案是将–allow-file-access-from-files添加到启动环境中。 很好,但是如何解决使用Chrome的网站访问者的问题?
作为Chrome用户,拥有代码来检查使用Chrome的用户并说“使用其他内容”会很具有讽刺意味。
有没有人知道如何围绕这个问题进行编码?
对于它的价值,这里是代码:
$(文件)。就绪(函数() { $( “#login_form”)。提交(函数() { //删除所有类添加消息框类并开始淡入淡出 。$( “#MSGBOX”)removeClass()addClass( '信息框')文本( '检查...')淡入(1000)。 //从ajax检查用户名是否存在 $ .post(“/ ajaxsignin.php”,{email:$('#email')。val(),密码:$('#password')。val(),记住:$('#remember')。 val(),rand:Math.random()},函数(数据) { if(data.success)//如果正确的登录详细信息 { ////////////////////////////////////////////////// /////////////////// //如果我在这里放置一个提醒(),Chrome就看不到它,但所有其他浏览器都没有 ////////////////////////////////////////////////// //////////////////// document.getElementById(“msgbox”)。innerHTML ='登录成功'; 。的document.getElementById( “topmenutext”)style.paddingTop = '3PX'; document.getElementById(“topmenutext”)。innerHTML =“BUG REPORT |退出|联系|帮助”; 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'; } 其他{ disablePopup(); } } 否则//如果登录失败 { $(“#msgbox”)。fadeTo(200,0.1,function()//开始淡出消息框 { //添加消息并更改框的类并开始淡化 $(this).html('登录失败 - 也许你需要注册一个帐户')。addClass('messageboxerror')。fadeTo(900,1); }); } }, “JSON”); 返回虚假; //不要在物理上发布表单 }); //现在调用ajax也可以从焦点移动 $( “#submitbtn”)。点击(函数() { $( “#login_form”)触发( '提交')。 }); });
如果您尝试使用Chrome从本地文件系统加载文件,这应该只是一个问题。 这是因为Chrome在文件系统上有严格限制的AJAX策略。
从本质上讲,Chrome不允许对html页面文件夹之外的文件进行AJAX请求。 要解决此问题,只需从Web服务器提供文件即可。 您的网站访问者可能会通过Web服务器访问您的网站,所以这对他们来说不应该是一个问题。