SCRIPT5: доступ запрещен в IE9

Я не могу получить доступ к URL-адресу с помощью этого сценария в IE9. В Chrome и на Firefox все работает нормально. Когда я отлаживаю (F12) на IE9, я получаю:

SCRIPT5: ACCESS DENIED.

Моя функция:

function NewPage2() {
    var xmlHttp;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlHttp = new XMLHttpRequest();

    } else { // code for IE6, IE5
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttp.open("GET", "https://graph.facebook.com/oauth/access_token?client_id=" +
        '<%=ConfigurationManager.AppSettings["clientId"].ToString() %>' + 
        '&redirect_uri=' + <%=ConfigurationManager.AppSettings["redirectUrl"].ToString() %>' +
        '&state=' + document.getElementById('text').value + 
        '&client_secret=' + '<%=ConfigurationManager.AppSettings["client_secret"].ToString() %>' +
        '&code=' + getUrlVars2()["code"], false);
    xmlHttp.send(null);
    end(xmlHttp.responseText + "&userId=" + getUrlVars2()["state"]);
}

1 ответ

Решение

Это происходит, когда вы пытаетесь получить доступ к ajax-запросу из другого домена на своей главной странице. (В этом случае вы получаете доступ к URL из Facebook).

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

Это довольно легко сделать с помощью jQuery.

Странно то, что, хотя вы включили jQuery в теги вопроса, ваш реальный код вообще не использует jQuery - на самом деле весь предоставленный вами код будет одной строкой в ​​jQuery плюс будет работать с межсайтовыми запросами.

Вам нужно использовать технику Ajax, называемую JSONP, которую вы можете найти в документации на сайте jQuery здесь: http://api.jquery.com/jQuery.ajax/

Код будет выглядеть примерно так:

$.ajax({
  dataType: 'jsonp',
  jsonp: 'jsonp_callback',
  url: 'https://graph.facebook.com/......',
  success: function () {
    // do stuff
  },
});

надеюсь, это поможет.

Другие вопросы по тегам