Загрузка внешнего контента на сервер на localhost - PullRequest
0 голосов
/ 15 июля 2011

Я пытаюсь создать веб-приложение, которое загружает контент динамически.Когда я делаю это, конечно, я хочу делать разработку локально, то есть localhost.Часть «функциональности» представляет собой форму, и при публикации этой формы электронное письмо отправляется с сервера.Поскольку я хочу получить доступ к функциям электронной почты серверов, я связываю эту конкретную страницу с сервером.Но проблема в том, что он не загружен.

В моем скрипте ниже это работает, но если я изменю комментарии так, что указываю на iandapp.com, то я получаю пустую строку.Это точно такая же страница, просто скопировал ее на сервер.

$("#support").click(function () {
    if(support_page==null){
       //$("#section2").load("http://www.iandapp.com/smic/subscription_2.php", function(data) {
       $("#section2").load("subscription_2.php", function(data) {
           support_page = data;
       });
    } 

Скрипт расположен на главной странице (index.html), и содержимое должно быть загружено в div с id = "section2".

Я знаю, что (support_page == null) верно, потому что у меня есть точка останова внутри, где она останавливается.

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

Заранее спасибо!

Ответы [ 4 ]

0 голосов
/ 15 июля 2011

А как насчет добавления правильных заголовков в HTTP-ответ сервера, чтобы разрешить кросс-домен?

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Access-Control-Origin: *
0 голосов
/ 15 июля 2011

Вероятно, это связано с тем, что это междоменный запрос. Вы могли бы использовать то, что я считаю «хаком», http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/,, но И.М.О. это того не стоит.

Рассматривали ли вы вместо этого отправку через SMTP-сервер? Если это так, у вас не будет проблем с тем, что файл (отправка почты) будет локальным.

0 голосов
/ 15 июля 2011

Используйте .getJSON() вместо .load(), этот метод поддерживает междоменные запросы. Вам нужно убедиться, что ваш PHP-скрипт выполняет что-то вроде следующего:

echo $_GET['callback'] . '(' . json_encode($results) . ')';

jQuery добавит что-то вроде ?callback=callback0234 к URL-адресу запроса, потому что он хочет, чтобы вы 'вызывали' функцию обратного вызова, когда ваш скрипт возвращается. Таким образом, вывод вашего скрипта может выглядеть примерно так:

callback0234('mydata': '<p>This is my data</p>')
0 голосов
/ 15 июля 2011

Google о

междоменных запросов ajax

. Это отключено на уровне браузера. Есть способы обойти это, как на стороне клиента, так и на стороне сервера.

...