Apache 服务器的 PHP 在地址栏中可以工作,但在使用 Javascript 的 AJAX 时不能工作?

问题描述 投票:1回答:1

我在EC2实例上创建了一个Apache服务器,用于托管mySQL数据库和一些PHP脚本来访问该数据库。我已经安装了 认为 是Apache服务器上所有必要的依赖,以至于当我写一个PHP脚本并通过地址栏的Web浏览器访问它时,PHP脚本运行,查询我的数据库并返回正确的信息给Web浏览器。

然而,脚本的目标是被一个Javascript应用程序用来通过AJAX访问数据库,特别是Captivate课程。当我尝试使用AJAX访问脚本时,什么都没有发生。Captivate提供的关于错误记录的信息很少,所以我尝试使用其他服务来检查我的javascript,以确保它的工作,如jsfiddle.net,但似乎Javascript不是问题所在。这是我的代码。

function httpGet(theUrl)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
    xmlHttp.send();
    alert(xmlHttp.responseText);
}

我的目标不是一定要用Alert把代码发到屏幕上, 我只是用它来检查我是否在第一时间得到了什么. TheUrl指向另一端的一个叫simpleecho.php的php脚本:

<?php
    echo "test";
?>

我有更复杂的PHP脚本,但它们也都能在浏览器中运行。如果我在浏览器的地址栏中进入theUrl,我看到的是 "test".我试过将Async请求改为Sync,我确信Captivate的javascript可以使用jQuery相关的代码,我试过8种不同的方式将AJAX请求以POST和GET的方式发送,但我不确定我错过了什么。我的直觉告诉我,Apache服务器的配置有问题,导致它无法响应地址栏以外的特定请求,但我对配置httpd.conf文件的了解不够,不知道我在寻找什么。

任何和所有的提示和学习都将被感激!

javascript php ajax apache adobe-captivate
1个回答
0
投票

这个问题的答案是,我不允许使用HTTP与apache服务器通信,必须用SSL来保证使用HTTPS。我试过使用自签证书,但自签版本也不允许使用Captivate课程。

© www.soinside.com 2019 - 2024. All rights reserved.