Мобильное приложение, где ему необходимо получить доступ к файлу JSON на другом сервере. И его политика перекрестного происхождения заблокирована. Так есть ли способ обойти или получить доступ к файлу?
Как уже было сказано, вам нужен простой скрипт php proxy.
Таким образом, ваш сервер захватывает json-файл, и вы просто получаете доступ к своему серверу с клиентской стороны. , Таким образом, javascript работает только с одним и тем же доменом.
<?php header('Content-Type: application/json'); echo file_get_contents('http://example.com/data.json'); ?>
Proxy.php
<?php header('Content-Type: application/json'); echo file_get_contents('http://example.com/'.$_REQUEST['file']); ?>
Другим способом также было бы отправить все заголовки запросов в виде строки запроса, это может быть сообщение / получить также
if (isset($_REQUEST['query'])) { $sQuery = http_build_query($_REQUEST); header('Content-Type: application/json'); echo file_get_contents('https://www.example.com?'.$sQuery); exit; } ?>
Используя второй пример, вы можете попробовать что-то вроде http://localhost/proxy.php?file=somefile.json
МЕТОД ХАРАКТЕРА
Обратитесь к следующей странице об использовании файла htaccess на сервере htaccess Access-Control-Allow-Origin
<FilesMatch ".(json|js|jsn)"> Header set Access-Control-Allow-Origin "*" </FilesMatch>
Используйте функцию заголовка. проверить эту ссылку, как обойти Access-Control-Allow-Origin?
header('Access-Control-Allow-Origin: *');
Вы классифицировали это под PHP. Вам следовало бы получить JSON с PHP, а затем использовать PHP для создания данных, требуемых JS.
Без дополнительной информации о вашем приложении я здесь очень ограничен.
Это очень типичный пример PHP для ввода json-данных в JavaScript:
$json = json_decode(file_get_contents('http://example.com/data.jsn'),true); $JS = 'var data = '; foreach ($json as $key => $value){ $JS .= "[$key,$value]," } $JS = substr($JS,0,-1) . ';'; // remove trailing comma, add semicolon echo <<<EOT <script type="text/javascript">//<![CDATA[ $JS //]]> </script> EOT;