1
我有一個PHP腳本,它從請求中獲取一個POST變量,對它執行某些操作(在這種情況下,它是對特定鍵的memcached請求)並通過JSON將其發回。PHP跨域請求被阻止
複雜的部分是,我不會在與執行請求的腳本相同的服務器上託管此腳本。所以我嘗試使用CORS。我的瀏覽器告訴我,我沒有設置Access-Control-Allow-Origin-Header,但我的確如你所見。所以我想我錯了。但是我沒有真正處理PHP中的頭文件,所以我完全不知道該怎麼做。我已經搜索(也在Stackoverflow),但我發現的是,我必須設置此標題,我做了什麼...
ourse memcache部分是不是真的有趣的解決問題,但我認爲它會更好,讓你們看看完整的代碼,所以在這裏你去:
<?php
header("Access-Control-Allow-Origin: * ");
$key = $_POST["key"];
$json = "";
if($key != "")
{
define('MEMCACHED_HOST', '127.0.0.1');
define('MEMCACHED_PORT', '11211');
$memcache = new Memcache;
$memcache->connect(MEMCACHED_HOST, MEMCACHED_PORT);
$value = memcache->get($key);
$json_array = array("status" => "done" , "key" => $key, "value" => $value);
$json = json_encode($json_array);
}
else
{
$json_array = array("status" => "empty");
$json = json_encode($json_array);
}
echo $json;
?>
您必須在您的POST變量最初來自的服務器上設置該標頭。 –
看起來您已正確設置標題以允許所有主機。檢索此JSON的腳本是什麼樣的? –
關於'$ key'的安全提示 - 您應該根據可接受的值列表來檢查輸入。否則,客戶可能通過猜測密鑰來查詢memcached中的任何可訪問值。 –