AJAX на припаркованном домене - PullRequest
0 голосов
/ 12 января 2011

Я сейчас пишу этот jquery и по какой-то причине (я не знаю почему) он работает на обычном домене, но на припаркованном домене - нет.

Обычный домен - http://www.thefinishedbox.com Припаркованный домен - http://www.tfbox.com

Если вы прокрутите вниз к новостям колонии и нажмете ссылку кликни мне, вы увидите, что она будет получать данные через jquery ajax на обычном домене, но на припаркованномдомен это не так.

Вот код jQuery, который у меня есть (его довольно стандартный):

$(function() {

$.ajaxSetup({
    cache: false
});
var ajax_load = "Load me plz";

//    load() functions
var loadUrl = "http://thefinishedbox.com/wp-content/themes/tfbox-beta/test.php";

$('.overlay').css({
    opacity: '0'
});
$('.toggle').click(function() {
    $('.overlay').css({
        display: 'block'
    }).animate({
        opacity: '1'
    }, 300);

    $(".overlay .content").html(ajax_load).load(loadUrl);

    return false;
});
$('.close').click(function() {
    $('.overlay').animate({
        opacity: '0'
    }, 300);
    $('.overlay').queue(function() {
        $(this).css({
            display: 'none'
        });
        $(this).dequeue();
    });
    return false;
});

Я полный нуб, когда дело доходит до ajax, поэтому любая помощь будетвысоко ценится.

Ответы [ 3 ]

2 голосов
/ 12 января 2011

Поскольку вы не можете выполнять запросы Ajax в другом домене, если вы не настроили соответствующие разрешения.Он называется «Междоменный Ajax».

Если вам абсолютно необходимо, чтобы он работал, вы можете немного изменить свой код:

var loadUrl = "http://"+window.location.hostname+"/wp-content/themes/tfbox-beta/test.php";

Или использовать обходной путь (не рекомендуется):http://www.usejquery.com/posts/9/the-jquery-cross-domain-ajax-guide

1 голос
/ 12 января 2011

Вы можете написать это на своей странице php, чтобы сохранить имя домена в переменной js.Таким образом, вы можете использовать один и тот же код в любом домене.

<script type="text/javascript">var domain = '<?php echo $_SERVER['HTTP_HOST']; ?>';</script>
<script type="text/javascript" src="yourJavascriptFile.js"></script>

, а затем использовать эту переменную в вашем файле js, например:

//    load() functions
var loadUrl = domain + "/wp-content/themes/tfbox-beta/test.php";
1 голос
/ 12 января 2011

Ajax-запросам обычно запрещено загружать вещи с других имен хостов по соображениям безопасности.Если бы вы могли просто загружать вещи с других сайтов, вы могли бы загружать банковские реквизиты и т. Д.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...