XMLHttpRequest open () возвращает отказано в доступе - PullRequest
4 голосов
/ 25 апреля 2010

У меня проблема с методом xhr open (). Мой код выглядит следующим образом:

var xmlhttp=false;

if(!xmlhttp)
    try
    { 
        xmlhttp=new XMLHttpRequest(); 
    }
    catch(e)
    {
        xmlhttp=false;
    }

function returnPage(url)
{
    if(!xmlhttp)
        return alert("Your browser doesn't seem to support XMLHttpRequests.");

    xmlhttp.open("GET",url,true);
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState!=4) return;
        if(!xmlhttp.status||xmlhttp.status==200)
            alert(xmlhttp.responseText);
        else
            alert("Request failed!");
    }; //onreadystatechange

    xmlhttp.send(null);
}

Звоните:

<a href='#' onclick="returnPage('http://www.something.com'); return false;">Link 1</a></p>

Я использую IE8 (потому что я создаю веб-фрагмент), и я получил ошибку «Доступ запрещен». В Интернете я обнаружил, что проблема в том, что XHR не работает в разных доменах, но я использовал код из надстройки Firefox, который работает нормально. И это дополнение и «мой» код (которые совпадают) вызывают одну и ту же страницу. Как у этого дополнения есть доступ, а у меня нет кода?

1 Ответ

6 голосов
/ 25 апреля 2010

Является ли домен, по которому вы делаете вызов AJAX, тем же доменом, что и ваш сайт? Вы не можете делать запросы к другим доменам.

EDIT

Надстройки Firefox имеют повышенные привилегии (поскольку пользователь должен их устанавливать). Вот почему надстройка может делать междоменные запросы.

...