2013-04-07 2 views
0

Обычно я делаю запросы JSONP в другом домене из корня моего сайта https://example.com/, но я больше не могу этого делать, так как теперь я использую безопасное соединение. Как я могу сделать асинхронный запрос во внешний домен без доступа к ним браузерами? Если необходимо, я могу ограничить https только страницей входа/вверх, но это не является предпочтительным.Обходное решение для безопасного соединения JSONP

+0

Возможно, я ошибаюсь, так как я никогда не пробовал. Однако вы уверены, что JSONP не работает над HTTPS? Насколько я знаю, это должно быть. В чем проблема, с которой вы столкнулись? Какая ошибка? Это проблема сертификата с конкретным доменом? Кроме того, имеете ли вы какой-либо контроль над этим доменом? – sagibb

+0

Да, я уверен. Браузеры блокируют небезопасный контент (по крайней мере, IE и Chrome) и полностью предотвращают его. Нет ошибки, просто предупреждение браузера. Это с конкретным доменом. У меня есть полный контроль над этим доменом, поскольку он владеет виртуальным частным сервером. Отсутствует какая-либо конфигурация или любые другие параметры системного уровня за файлом apache .htaccess или файлами конфигурации php. Мне нравится идея прокси; это будет мой первый раз, когда вы делаете внешние запросы с сервера ... все сложнее с PHP после. –

+0

Как я уже говорил, мне придется проверить. Вероятно, есть более чистое решение, если вы являетесь владельцем домена. – sagibb

ответ

1

Типичным решением является проксирование вызовов через собственный сервер. Например, отправьте запрос на yourpage.(aspx|php|jsf), а затем сделайте удаленный вызов на сервер.

+0

Мне никогда не приходилось делать запрос от PHP раньше. Я сделал домашнюю работу, но я мог бы использовать некоторые разъяснения. Чтобы отправить этот вызов с сервера, я бы использовал file_get_contents («http://www.external.com/?param1=...etc.»), Чтобы получить «some_callback ({})» в ответ? также, если бы я повторил это в двойных кавычках, автоматически ли он вызывал бы мою функцию обратного вызова javascript, когда запрос будет закончен, и я смогу получить доступ к данным из вызова через textContent в вызове на мой сервер? Или мне придется вытащить данные вручную? –

+0

Не слишком знакомы с PHP, поэтому я не знаю об этой стороне. Поскольку вы выполняете вызов со стороны сервера, у вас нет ограничений JSONP, наложенных браузером, поэтому, если API может возвращать простой JSON, тогда вы можете просто зеркально отразить это от своего прокси-сервера PHP и использовать его используя 'response.responseText', предполагая, что вы делаете это через Ajax. –