Отключить политику одинакового происхождения в Mobile Safari

У меня есть приложение HTML5/JavaScript, которое изначально было написано для работы на определенных автомобилях. В принципе, мне нужно настроить приложение для запуска в браузере для простой демонстрации для клиента.

Я использую jQuery.ajax, который вызывает проблемы из-за той же политики происхождения. Я нашел множество способов отключить это в настольных браузерах, но не мобильных.

Моя цель - демонстрацию приложения на iPad в Mobile Safari. Есть ли способ временно отключить политику одинакового происхождения на iPad?

Ответы

Ответ 1

У меня была такая же проблема с приложением sencha. Я решил, установив базовый путь на мои javascript-вызовы ajax, например:

var BASEPATH = 'http://192.168.1.200/myapp';

$.ajax({
  url: BASEPATH+'/someaction'
});

И с мобильного я обращаюсь к нему с помощью http://192.168.1.200/myapp

Моя проблема заключалась в том, что с мобильного я получаю доступ только с IP, но ajax-вызов указывал на localhost.

Надеюсь, что этот трюк поможет.

Ответ 2

Вам нужно запустить веб-сервер, а не протокол файлов.

Ответ 3

В принципе, вам нужен заголовок.

Поместите этот код в начало страницы, на которую вы хотите отправить запросы перекрестных доменов.

<?php header("Access-Control-Allow-Origin: *"); ?>

Будьте осторожны с *, так как это позволяет любому веб-сайту отправлять запросы на страницу, с которой отправляется этот заголовок.

* можно заменить доменами, например example.com, example.net.

Ответ 4

Это возможно в Javascript, если вы используете вызов ajax для общедоступного прокси, который в основном удаляет один и тот же заголовок источника. Или вы можете написать страницу php curl get, где вы вызываете вызов ajax. Код для проверки этого блога:

http://thewebtimes.tumblr.com/post/90549614884/access-forbidden-webpages-with-javascript

Ответ 5

Попробуйте использовать JSONP в своем вызове ajax. Он будет обходить политику одного и того же происхождения.

http://learn.jquery.com/ajax/working-with-jsonp/