【发布时间】:2015-03-29 06:10:39
【问题描述】:
首先,很抱歉问了一个以前被问过很多次的问题,但我没有找到一个我理解或适合我的合适答案。
我正在尝试访问我的 WAMP 盒子上的另一个服务,但我不断收到错误消息:
XMLHttpRequest 无法加载 http://192.168.0.2:8080/json.htm?type=command¶m=switchlight&idx=9&switchcmd=Off&level=0。 请求中不存在“Access-Control-Allow-Origin”标头 资源。 Origin 'http://192.168.0.2' 因此不允许访问。
我在 Windows 8.1 机器上运行 WAMP 2.5。我尝试了各种解决方案,但作为一个卧室爱好者,我遇到了麻烦。
我已将 mod_headers 添加到 Apache 选项中,并且我的 httpd.conf 包含:
<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
</IfModule>
尝试添加 .htaccess 文件:
Header set Access-Control-Allow-Origin "*"
尝试使用 JSONP,但我尝试访问的服务不支持它并返回语法错误:
我已经更改了很多代码,但我目前使用的代码如下:
<script>
var testSwitchValue = 0;
function testSwitch() {
if (testSwitchValue > 0) {
var switchCommand = "Off";
testSwitchValue = 0;
} else {
var switchCommand = "On";
testSwitchValue = 1;
}
$.ajax({
url: 'http://192.168.0.2:8080/json.htm?type=command¶m=switchlight&idx=9&switchcmd=' + switchCommand + '&level=0',
type: 'GET',
success: function(data) {
console.log(data)
},
error: function(xhr, status, error) {
console.log(status);
}
});
}
</script>
编辑
奇怪的是它刚刚开始在 IE 11.0 中工作,但仍然不能在 Chrome 中工作,并且仅适用于本地地址 192.168.0.2。
【问题讨论】:
-
您确定您的
.htaccess文件正在加载吗? -
我猜它正在被加载...它与我所有其他文件一起位于我的 WWW 文件夹的根目录中。
-
你的 .htm 文件是什么类型的文件?如您所见,您将参数传递给它。也许它是一个伪造的php?
-
这是一个非常基本的 index.html 文件。
-
也许你的 apache 没有启用 header mod。
标签: jquery ajax apache http wampserver