2010-10-21 2 views
0

Я хочу опубликовать внешний файл php и получить результат. Это php, который я разместил на своем сервере в Интернете. Я хочу статическую страницу в моей localhost-сообщении ajax и загружать html в div. Но я не могу этого сделать.JQuery Post для внешнего php

$.post("http://www.site.com/index.php", { font: "panchami", input: "hi" }); 

В этом нет ничего плохого.

+0

1) Функция обратного вызова отсутствует. 2) Cross-origin AJAX (чтение: сообщение что-то другому серверу) по-прежнему не поддерживается широко. – Harmen

ответ

2

Javascript doesn't allow cross domain requests.

Что вы можете сделать, это PHP файл на сервере, на котором reads the contents of the other site:

<?php echo file_get_contents($_REQUEST['url']); ?> 

Затем сделать запросы ваш файл, например:

$.post("proxy.php?url=external_url", ...); 
+0

Подход PHP-прокси очень привлекателен, но обратите внимание, что показанный код может быть неправильно использован как общий прокси-сервер, что плохо. Вы захотите создать некоторые меры безопасности, например. проверьте «REFERER» или ограниченный список возможных целевых URL-адресов –

3

Same Origin Policy предотвращает вызовы Ajax внешним доменам.

Популярные обходные пути включают

  • JSONP
  • встраивание данных в iframe вместо
  • Использование на стороне сервера прокси в ли выборка (см @ ответ BrunoLM для примера PHP, можно в серверном языке)
  • Юй Get, как показано на @ ответ Алекса

в зависимости от вашего использования.

0

Этот вид запроса является опасным, он называется кросс-сайтом и запрещен большинством браузеров. Если вы посмотрите на свою консоль ошибок, вы увидите сообщение об этом.

Если у вас действительно нет альтернативы, вы можете рассмотреть возможность использования iframes, атрибут src может находиться за пределами текущего домена, и вы можете анализировать информацию с помощью javascript.

Надеюсь, что это поможет :)

Смежные вопросы