我有一个名为login.php
的登录页,它位于主第一根级别,users.php
位于assets/app/users.php
。我使用jQueryajax来完成登录过程。在login.php
的JS部分,我有:
if(loginProceed){
var data = {email: loginEmail, pass: loginPass};
var loginreq = $.ajax({
type: "POST",
url : "assets/app/users.php",
cache: false,
data: data
});
loginreq.done(function(html) {
if(html=='true'){
window.location.replace('app.php'); }
else {
$("#loginRequest").before('<div class="alert alert-danger err" role="alert">Email or Password Is Not Correct</div>');
}
});
}
e.preventDefault();
});
在users.php
中我有
<?php
header('Access-Control-Allow-Origin: *');
session_start();
include 'config.php';
$email = $_POST['email'];
$pass = $_POST['pass'];
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DATABASE);
$sql = "SELECT id, email, fname, lname, type FROM users WHERE `email`=? AND `pass`=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ss', $email,$pass);
$stmt->execute();
$stmt->bind_result($theId,$theEmail,$theFName,$theLname,$theType);
if ($stmt->fetch()) {
echo 'true';
$_SESSION['LOGIN_STATUS'] = true;
$_SESSION['fname'] = $theFName;
} else {
echo 'false';
}
现在,这是为我在所有浏览器中进行登录过程,但对其他一些用户来说,它只适用于Chrome!甚至都没有,我们在控制台中收到了这些错误:
login.js:74对象login.php:1 XMLHttpRequest无法加载http://domain.ca/login.php.不请求的上存在"Access Control Allow Origin"标头资源原点'http://www.domain.ca因此允许访问。
或在FireFox 上
不安全(http://)页面上存在密码字段。这是一个允许用户登录凭据被盗的安全风险。[学习更多]"无需传感器:https://developers.google.com/maps/documentation/javascript/error-messages"util.js:30:57
和EI
SCRIPT7002:XMLHttpRequest:网络错误0x4c7,操作为已被用户取消。
你能告诉我为什么会发生这种事吗?
尝试允许单域
header('Access-Control-Allow-Origin: http://www.domain.ca');
或者尝试使用Header set Access-Control-Allow-Origin "*"
修改.htaccess在此处输入链接描述
看起来你的脚本是从domain.ca加载的(没有www),但你或其他用户从www.domain.ca