Nano Hash - криптовалюты, майнинг, программирование

Как обойти политику перекрестного происхождения

Мобильное приложение, в котором ему нужно получить доступ к файлу JSON на другом сервере. И его показывающая политика перекрестного происхождения заблокирована. Так есть ли способ обойти или получить доступ к файлу?


  • У вас есть доступ к другому серверу? 02.05.2015
  • CORS существует не просто так. Поэтому, если у вас нет доступа к целевому серверу для изменения политики CORS, вы не сможете ее обойти. 02.05.2015
  • Попробуйте найти перекрестный источник JSON 02.05.2015
  • да, у меня есть доступ к другому серверу, но мы не можем использовать какой-либо php-код в основном приложении 02.05.2015
  • Затем просто примените междоменный заголовок .. но для этого потребуется php или использовать файл htaccess для применения заголовка 02.05.2015
  • Я отредактировал свой ответ и включил ссылку для использования файла htaccess, это должно помочь в вашем случае .. Сначала прочтите страницу. 02.05.2015

Ответы:


1

Используйте функцию заголовка. ознакомьтесь с этой ссылкой как обойти Access-Control-Allow-Origin?

    header('Access-Control-Allow-Origin: *');
02.05.2015
  • этот ответ требует некоторой справочной информации и дальнейшего объяснения. 02.05.2015
  • Это будет работать, только если у вас есть доступ к другому серверу. 02.05.2015
  • Я не вижу причин, по которым они голосуют против, и не вижу причин для объяснения простой функции. Вопрос был в том, как обойти проблему, и я дал решение. Если вы умеете создавать мобильное приложение, писать код Json и PHP, я уверен, что вы сможете найти простую функцию заголовка без особых усилий. 02.05.2015
  • @ Сэм, это не ты. Это они. Вы пытаетесь помочь, но иногда ваши усилия не понимают, неправильно понимают. OP также проголосовал за меня. Как видите, в этом вопросе не должно быть тега PHP. Так что это ваша вина, что ОП не очень сообразителен. И не пытаюсь быть расистом. 02.05.2015
  • На самом деле люди голосуют против чего-то вроде этого, потому что это только достойно комментария .. Это не полный ответ .. И более того, если им нужен не PHP метод, то это не поможет им дальше .. Расширьте свой ответ за пределы одной строки / комментария количество текста. 02.05.2015
  • Я не поощряю кормление с ложечки, и никто в сообществе stackflow тоже не должен. Это только указывает на лень со стороны ОП, что мы, безусловно, не одобряем. 02.05.2015
  • Сэм ... просто узнай, какой ответ является достойным содержанием, а какой - достойным комментарием содержания .... вот и все, что я собираюсь сказать по этому поводу. 02.05.2015
  • @Mayhem: нажмите на ссылку на мой ответ. 111 проголосовали за однострочный ответ на аналогичный вопрос. Дело не в линии, Mayhem. Этот вопрос не требует ответа из 100 строк. 02.05.2015
  • Во-первых ... Вы отредактировали его ... Ваш первый ответ был всего лишь единственной строкой php ... Во-вторых, ссылка все еще указывает на исходную страницу, которая все еще охватывает только PHP ... Которая была признана непригодной для использования в этом кейс. Еще раз, вам нужно приложить больше усилий для вашего ответа ... В любом случае покажите некоторые реальные усилия или объясните вещи ... Не публикуйте только сырые ответы. 02.05.2015
  • Я редактировал, потому что кто-то хотел, чтобы меня кормили с ложечки. Я понял вопрос, мой ответ был относящимся к делу, OP проголосовал за меня, и я почти уверен, что вы все еще не поняли вопрос. Это вопрос php. Сторона сервера - это PHP, и спрашивающий имеет доступ к серверу PHP, как он четко указал. но не хочет использовать PHP в основном приложении, которое является клиентским. Как правило, это гибридный сценарий мобильного приложения, в котором использование заголовка Access-Control-Allow-Origin открывает дверь для доступа между источниками для определенных источников запроса. Надеюсь, я прояснил это. 02.05.2015

  • 2

    Вы отнесли это к категории 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;
    
    02.05.2015
  • существует золотая середина, в которой PHP проксирует существующий запрос на JSON и просто передает его. Нет необходимости смешивать PHP и JS или изменять что-либо, кроме URL-адреса в существующем коде. 02.05.2015
  • @JAAulde Это просто проходит не то, что я сделал? Единственный другой способ увидеть, что PHP является прокси для JS, - это использовать AJAX, а это слишком медленно и требует дополнительного HTTP-запроса со стороны браузера. За прошедшие годы я обнаружил, что сочетание PHP и JS дает огромные преимущества. Просто, эффективно и быстро, мне нравятся все три. Можно ли здесь использовать oit, не знаю, инфы мало. 02.05.2015
  • Я предполагаю, что OP уже использует AJAX (хотя я могу ошибаться), и это может быть что-то, что постоянно перезагружает данные в течение жизненного цикла приложения. Прокси-сервер на стороне сервера является стандартной реализацией в подобных ситуациях, если невозможно реализовать CORS. Я также отмечу, что следует избегать ручного создания данных JS, как вы делаете при построении строки $JS, и использование сериализации JSON должно заменить ее. Первый вариант подвержен ошибкам, и его труднее читать. В этом случае данные уже в формате JSON, так что это тоже дополнительная работа. 02.05.2015
  • Я должен согласиться с вами, OP, скорее всего, использует AJAX. Если бы дело было в том, что выполнялось несколько вызовов AJAX или выполняемый вызов AJAX изменялся в результате взаимодействия с пользователем, то мое решение быстро разваливалось. Я все еще люблю рассказывать о смешивании PHP и JS. Когда нужно, это здорово. Я никогда не видел кода, который делал бы это так, как я. Я много использую эту технику. Не обязательно для JSON, но для получения данных db в JS. 02.05.2015
  • Поскольку это мобильное приложение, предназначенное для windows phone и firfox os и поддерживающее только html, css и JS, мы не можем использовать какой-либо php в основном файле, который будет содержаться в приложении. Итак, какое-либо связанное с этим решение? 02.05.2015
  • Что ж! Спасибо за мои усилия! Затем вы можете удалить тег PHP из своего вопроса. Я предварял свой ответ комментарием о том, что тег PHP является сомнительным, и что мой ответ неприменим, потому что ваш вопрос оставил слишком много вопросов без ответа. Хотя иногда я умею читать мысли, для этого требуется, чтобы они были у человека. 02.05.2015
  • Я поддержал вас, так как ваш подход был правильным, прежде чем мы узнали, что они не могут использовать PHP. 02.05.2015
  • Вы получили мой голос. Ваше решение идеально подходит для тех случаев, когда мое нет. 02.05.2015
  • Вместо того, чтобы редактировать в баннере, либо удалите свой ответ, либо просто оставьте свой пост, чтобы за него проголосовали другие. OP - не единственный человек, которому вы можете здесь помочь. 12.05.2015

  • 3
  • Поскольку это мобильное приложение, предназначенное для windows phone и firfox os и поддерживающее только html, css и JS, мы не можем использовать какой-либо php в основном файле, который будет содержаться в приложении. Итак, какое-либо связанное с этим решение? 02.05.2015
  • Верно .. моя ошибка, исправлена. 02.05.2015
  • На вашем сервере, на котором вы размещаете приложение, должен быть php, если ваше приложение использует только локальные файлы, вам нужно будет разместить php-файл, чтобы проделать этот трюк с сервером или изменить междоменный заголовок на сервере, на котором размещен json-файл. 02.05.2015
  • Ты тоже! Вы попали в ловушку PHP-тега. Зачем кому-то помечать вопрос с помощью PHP, если решение PHP не подходит? Кстати, мне очень нравится ваше решение. Очень простой прокси. По крайней мере, я уверен, что вы помогли другим. Это ОП ?, не очень уверен, что это возможно. 02.05.2015
  • Это самый простой способ использовать прокси-сервер PHP, но согласен, так как он поможет другим. Хотя в этом случае он может использовать файл HTACCESS на другом сервере и разрешить перекрестный домен для заданного файла (ов). 02.05.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..