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中的任何可访问值。 –