我的方案是由兩個網絡服務器一個本地和一個遠程。訪問控制 - 允許 - 來源angularjs到PHP
本地Web服務器(Apache)的過程中,我希望做一個Ajax請求遠程web服務器(lighttpd的)一個Web應用程序。
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什麼瀏覽器? – noahdotgansallo
Chrome和火狐瀏覽器 – gravi
我也遇到了同樣的問題,顯然,Chrome直接阻止了所有這些類型的請求,儘管標頭 – noahdotgansallo