我有一个日历,当我单击某天时,我想显示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”标头出现在请求的资源上。
您知道我该如何解决吗?
答案 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
)。