jQuery Ajax请求由于CORS错误而无法正常工作

时间:2019-03-11 10:14:17

标签: php jquery ajax cors

我有一个日历,当我单击某天时,我想显示php文件中的内容。我进行了ajax请求,但出现403错误,并说:“所请求的资源上没有'Access-Control-Allow-Origin'标头。”

这是我的代码:

<div id="my-calendar"></div>
<div id="ladiv" style="display:none ;height:100px; width:100%; border:2px solid grey;"></div>

<script type="application/javascript">
    $(document).ready(function () {
        $("#my-calendar").zabuto_calendar({
            language: "fr", 
            show_previous: false, 
            show_next: true,
            cell_border:true
        });

        $("body").on("click", "tr.calendar-dow td", function () {
            $.ajax({
                url:"******.org/custom/include/javascript/lib/ajax/test_ajax.php",
                type: "GET",
                dataType: "html",
                crossDomain:true,
                success: function (code_html) { 
                    $("#ladiv").html(code_html)
                    console.log("success");
                },
                error:function () {
                    console.log("failed");
                }
            });
        });

这是我简单的php文件:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
$vari2='<p>variable 2</p>';
echo $vari2;

但我仍然有此错误:

  

获取http:/// ********* lib / ajax / test_ajax.php 403(禁止)   从CORS策略阻止从源“ http:// ****”访问“ http://****/lib/ajax/test_ajax.php”处的XMLHttpRequest:没有“ Access-Control-Allow-Origin”标头出现在请求的资源上。

您知道我该如何解决吗?

1 个答案:

答案 0 :(得分:3)

仔细查看错误消息:

  

获取http:/// ********* lib / ajax / test_ajax.php 403(禁止访问)访问位于http:// **** /的XMLHttpRequest来自起源“ http:// ****”的lib / ajax / test_ajax.php”已被CORS策略阻止:所请求的资源上没有“ Access-Control-Allow-Origin”标头。

服务器未运行PHP (因此它没有输出PHP代码将输出的标头),而是禁止对其进行访问。

您需要弄清楚为什么会这样。也许服务器上的文件权限不允许HTTP服务器软件读取PHP文件。也许您必须进行身份验证(您要做拥有Access-Control-Allow-Credentials: true)。