![](/img/trans.png)
[英]No 'Access-Control-Allow-Origin' error even though the header is there on my server side code
[英]Error: No 'Access-Control-Allow-Origin' header is present. Even though I have added it
我在Unity中構建應用程序並導出到HTML5。 當我嘗試發出簡單的GET請求時,出現此錯誤:
通過CORS策略阻止了對來自源“ http://anothersite.co.uk ”的“ http://example.co.uk/request.php?foo=bar ”處的XMLHttpRequest的訪問:沒有“允許訪問控制” -Origin'標頭出現在請求的資源上。
我在論壇上看到過很多問題問這個,人們給出了這樣的回答(正如我對它們的解釋):
您請求的服務器/站點應該設置標頭,以接受您請求的特定域,或者將其設置為通配符
在瀏覽器中禁用網絡安全
第一個對我來說很有意義,但是我已經在服務器端嘗試了以下操作,但無濟於事:
在.htaccess文件中設置標題。 如標頭集訪問控制允許來源“ *”
在“請求” php文件中設置標題:header('Access-Control-Allow-Origin: http : //anothersite.co.uk '); (我也嘗試過“ *”)
我嘗試在Unity代碼中的“ anothersite.co.uk”請求中發送標頭。
我通過將URL傳遞給https://cors-anywhere.herokuapp.com來嘗試人們的建議,但這根本沒有用,也許我誤會了它。 我真的不喜歡這樣作為解決方案..使得整個事情顯得毫無意義。
任何提示都將真正有幫助,對不起,如果我對整個事情都沒有理解,我感到很抱歉,但是我無法做出正確的決定。
在此先感謝您的幫助! :)
我使用以下PHP代碼的版本來提供數據,它似乎可以正常工作。
if (isset($_SERVER['HTTP_ORIGIN'])) {
// Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one
// you want to allow, and if so:
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
// may also be using PUT, PATCH, HEAD etc
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.