Отключить политику одинакового происхождения в 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/