【发布时间】:2016-03-28 12:22:20
【问题描述】:
我的场景由两台网络服务器组成,一台本地,一台远程。
本地网络服务器 (Apache) 处理一个网络应用程序,我想在其中向远程网络服务器 (Lighttpd) 发出 ajax 请求。
Ajax 请求使用 angularjs $http.
var req = {
method: 'POST',
url: 'http://url/myphp.php',
headers: {
'Authorization': 'Basic ' + btoa('username:password'),
'Content-Type': 'application/x-www-form-urlencoded'
},
xhrFields: {
withCredentials: true
},
crossDomain: true,
data: xmlString
}
$http(req).then(function () {
console.log("OK!");
});
远程php脚本是:
<?php
echo "You have CORS!";
?>
不幸的是,我得到了一个
401 Unhauthorized
XMLHttpRequest cannot load http://url/myphp.php. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8888' is therefore not allowed access. The response had HTTP status code 401.
远程 Web 服务器已启用 .htpasswd 身份验证模式并配置了 CORS 请求。
关注一段lighttpd.conf
setenv.add-response-header = ( "Access-Control-Allow-Origin" => "*" )
【问题讨论】:
-
你使用什么浏览器@gravi?
-
Chrome 和 Firefox
-
我遇到了同样的问题,而且很明显,chrome 直接阻止了所有这些类型的请求,尽管有标题
标签: php angularjs http cors lighttpd