我正在使用PHP,使用ajax发送请求到0.0.0.0/ajax.php
,但实际网址现在是localhost
,因此由于相同的来源政策而导致javascript错误
ajax.php
:
session_start();
if ( $_SESSION['http_origin'] ) {
header("Access-Control-Allow-Origin: *");
}
// below is some code handle ajax request
我知道在任何输出后头文件功能都不起作用,所以上面的代码位于源文件的顶部。 $_SESSION['http_origin']
已设置为TRUE
,如果将echo "ok";
置于if语句的header
下,则会输出“ok”。
但是,当我在此页面上使用ajax请求时,它会显示错误,该错误归因于同一来源政策,如果我将$_SESSION['http_origin']
替换为1
,它会正常工作。
那么,我错过了什么吗?
答案 0 :(得分:0)
<?php
代码<?php
答案 1 :(得分:0)
我猜,$_SESSION['http_origin']
应该是$_SERVER['http_origin']
,而当你输入1代替$_SESSION['http_origin']
时,它始终为真,所以它适用。
答案 2 :(得分:0)
问题解决了。
这是因为会话无法在不同的域上共享。如果我访问0.0.0.0,则输出“ok”,但如果我访问localhost,则不会。
我的错误。