Javascript 如何让CORS在托管帐户上工作?

Javascript 如何让CORS在托管帐户上工作?,javascript,php,ajax,.htaccess,cors,Javascript,Php,Ajax,.htaccess,Cors,我一直试图让CORS在一个免费的托管帐户上工作了一段时间,但没有成功。我让它使用不同的端口在本地工作,但当我将脚本上传到远程服务器时,它不工作。我尝试了CORS的PHP版本: <?php if (isset($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials:

我一直试图让CORS在一个免费的托管帐户上工作了一段时间,但没有成功。我让它使用不同的端口在本地工作,但当我将脚本上传到远程服务器时,它不工作。我尝试了CORS的PHP版本:

<?php
if (isset($_SERVER['HTTP_ORIGIN'])) {
    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']))
        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);
}
?>

启动类似fiddler的程序,看看在http级别上服务器和客户端之间到底发生了什么。您的
.htaccess
文件看起来很适合处理php文件的CORS,无需将代码添加到php脚本中。。你有什么样的错误?谢谢回复马文和佩德罗。一般来说,这些方法应该有效!它们在本地工作,因为我使用端口设置了不同域的起点和终点。但在将同一脚本在线上传到远程服务器后,客户端似乎无法访问该脚本。尝试了.htaccess方法也不起作用。所以我想知道是主机提供商阻止了这样的请求还是别的什么!我正在考虑尝试使用另一个提供程序,看看它是否有效。XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为403。
RewriteEngine On

<FilesMatch "\.(php)$">
     <IfModule mod_headers.c>
            Header set Access-Control-Allow-Origin "*"
     </IfModule>
</FilesMatch>

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]