抱歉,这看起来比实际情况要长,但我想我应该包含所有信息!
我正在使用一个简单的 Ajax 脚本将内容动态引入页面上的
更奇怪的是,它在我的办公室网络上可以工作,但如果我在家庭或 VPN 网络上,它就会失败。如果失败,JavaScript 调试器中会弹出此错误:
Line: 12
Char: 11
Error: Permission Denied
Code: 0
URL: http://www.example.com/about.php
代码实际上并没有那么复杂,它只是 W3 网站上的内容的一个稍微修改过的版本,但返回调用被“拒绝”的事实让我感到困惑。服务器 IIS 配置中是否有某些内容可以阻止脚本攻击? (随意想到?)
感谢任何帮助;)
首先 - Ajax 脚本
var myHttpRequest = false;
if(window.XMLHttpRequest)
myHttpRequest = new XMLHttpRequest();
else if(window.ActiveXObject)
myHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
function loadContent(source, content)
{
if(myHttpRequest)
{
var data = document.getElementById(content);
myHttpRequest.open("GET",source);
data.innerHTML = '<div class=\"loading_image\"><img src=\"images/loading.gif\" width=\"54px\" height=\"55px\" alt="loading" /></div>';
myHttpRequest.onreadystatechange = function()
{
if(myHttpRequest.readyState==4)
data.innerHTML = myHttpRequest.responseText;
$('#col2_2_content').supersleight();
}
myHttpRequest.send(null);
}
}
这是一个截断的页面示例,它调用 Ajax 内容,并在 col2_2_content Div 中插入所有内容。文件 ajax.js
在 head 部分引用。
<div id="col2_2_content">
<div class="mugshot_container">
<img src="images/mugshot_dh.jpg" onClick="loadContent('about/dh.php?ajax=yes', 'col2_2_content');"/>
</div>
</div>
这是来自 about/dh.php
的代码,通过 Ajax 插入,以及 PHP 格式来决定应该返回什么。 (它也被设计为直接调用 - 在这种情况下它会得到一个页眉/页脚)。
<?php
$home_url = "http://www.example.com/url/";
$content = "
<p>Some Text</p>
<p><a onClick=\"loadContent('$home_url/about/about-main.php?ajax=yes', 'col2_2_content');\">Back</a></p>
";
if (isset($_REQUEST['ajax']) ) {
echo $content;
} else {
include_once 'about-header.php';
echo $content;
include_once 'about-footer.php';
}
?>
最佳答案
“权限被拒绝”听起来很可疑,好像您有 same origin policy问题。
关于php - Ajax 错误 - "permission denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199694/