如何绕过Cross origin策略

Pia*_*san -2 javascript php same-origin-policy

移动应用程序需要访问另一台服务器中的JSON文件.并显示其交叉原产地政策受阻.那么有没有办法绕过或访问该文件?

Ang*_* 84 9

如前所述,您需要一个简单的PHP代理脚本.

这样您的服务器就可以抓取json文件,只需从客户端访问您的服务器即可..这样javascript只处理相同的域名.

<?php
  header('Content-Type: application/json');
  echo file_get_contents('http://example.com/data.json');
?>
Run Code Online (Sandbox Code Playgroud)

Proxy.php

<?php
  header('Content-Type: application/json');
  echo file_get_contents('http://example.com/'.$_REQUEST['file']);
?>
Run Code Online (Sandbox Code Playgroud)

另一种方法是将所有请求标头作为查询字符串发送,这也可以是post/get

if (isset($_REQUEST['query'])) {
    $sQuery = http_build_query($_REQUEST);
    header('Content-Type: application/json');
    echo file_get_contents('https://www.example.com?'.$sQuery);
    exit;
}

?>
Run Code Online (Sandbox Code Playgroud)

使用第二个例子你可以尝试类似的东西 http://localhost/proxy.php?file=somefile.json

HTACCESS方法

有关在服务器htaccess Access-Control-Allow-Origin上使用htaccess文件,请参阅以下页面

<FilesMatch ".(json|js|jsn)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)