我的页面上有很少的ajax请求(放在受保护的目录中)。事情在Mozilla上很好用,但我在Chrome和Safari上遇到了CORS问题。即使所有操作和文件都在同一个域中,我也会收到此错误,这很奇怪。我还需要提一下,我将会话ID传递给ajax调用的文件。
我从Chrome获取的错误日志:
XMLHttpRequest无法加载http://test.com/start_time.php?driverid=7。 No' Access-Control-Allow-Origin'标题出现在请求的上 资源。起源' http://www.test.com'因此是不允许的 访问。响应的HTTP状态代码为401。
简化样本jquery:
$(document).ready(function () {
$('[id^=start-]').on('click', function (e) {
e.preventDefault();
var elem = $(this);
driverid = elem.attr('data-driver');
$.ajax({
type: 'GET',
url: 'start_time.php',
data: {'driverid': driverid},
dataType: "html",
success: function(response){
elem.remove();
$('#daystart').html(response);
},
error: function(){
$('#alerts-' + orderid).html('<div class="error">Error - ERR011 - Contact Office</div>');
});
}
});
});
简化PHP(start_time.php)
<?php
session_start();
$sid = $_SESSION['sid'];
$driverid = $_GET['driverid'];
if ($sid==session_id() && isset($driverid)) {
include "connectdb_mysqli.php";
date_default_timezone_set('Europe/London');
$datestamp = date("Y/m/d");
$timestamp = date("H:i:s");
echo"$timestamp</li>";
}
else
{
echo "Please login!";
}
?>
在我已放置的htaccess文件中
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
我也在主文件的php头文件中设置了它,可以从(dashboard.php)执行所有jquery操作。我在我的文件上面有这一行:
<?php header('Access-Control-Allow-Origin: *'); ?>
我已经看过很多类似的Q&amp; A已经并且已经在这里花了好几天了。
我哪里出错,哪些可以改变,任何建议都高度赞赏。