Ajax - No' Access-Control-Allow-Origin'标头出现在请求的资源上

时间:2017-09-21 09:51:07

标签: php jquery ajax .htaccess cors

我的页面上有很少的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已经并且已经在这里花了好几天了。

我哪里出错,哪些可以改变,任何建议都高度赞赏。

0 个答案:

没有答案