PHP Cross-Origin-Request 已屏蔽
PHP Cross-Origin-Request blocked
我有一个 PHP-script,它从一个请求中获取一个 POST-variable,用它做一些事情(在这种情况下,它是一个针对特定密钥的 memcached 请求)并通过 [=25 发回=].
复杂的部分是,我没有将此脚本托管在与处理请求的脚本相同的服务器上。所以我尝试使用 CORS。我的浏览器告诉我我还没有设置 Access-Control-Allow-Origin-Header,但正如您所看到的那样。所以我想我设置错了。但是我还没有真正处理 PHP 中的 header,所以我真的不知道该做什么。我已经搜索过(也在 Whosebug 上)但我发现我必须设置这个 header,我做了什么...
当然memcache-part对于解决问题来说不是很有趣,但是我觉得还是让大家看看完整的代码比较好,所以就到这里:
<?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;
?>
在 Apache .conf 文件中插入一些行就可以了。如果有人感兴趣,可以找到这些行 here。我仍然不知道为什么它不能与 PHP 中的 headers 一起使用。也许我对客户做错了什么。但它现在可以工作了:)
我有一个 PHP-script,它从一个请求中获取一个 POST-variable,用它做一些事情(在这种情况下,它是一个针对特定密钥的 memcached 请求)并通过 [=25 发回=].
复杂的部分是,我没有将此脚本托管在与处理请求的脚本相同的服务器上。所以我尝试使用 CORS。我的浏览器告诉我我还没有设置 Access-Control-Allow-Origin-Header,但正如您所看到的那样。所以我想我设置错了。但是我还没有真正处理 PHP 中的 header,所以我真的不知道该做什么。我已经搜索过(也在 Whosebug 上)但我发现我必须设置这个 header,我做了什么...
当然memcache-part对于解决问题来说不是很有趣,但是我觉得还是让大家看看完整的代码比较好,所以就到这里:
<?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;
?>
在 Apache .conf 文件中插入一些行就可以了。如果有人感兴趣,可以找到这些行 here。我仍然不知道为什么它不能与 PHP 中的 headers 一起使用。也许我对客户做错了什么。但它现在可以工作了:)