/ / SCRIPT5: Prístup je zakázaný na IE9 - javascript, internet-explorer, internet-explorer-9

SCRIPT5: IE9 odmietol prístup - javascript, internet explorer, internet explorer-9

Nemôžem pristupovať k adrese URL pomocou tohto skriptu v prehliadači IE9. V prehliadači Chrome a na prehliadači Firefox to funguje dobre.F12) na IE9 dostanem:

SCRIPT5: ACCESS DENIED.

Moja funkcia:

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"]);
}

odpovede:

1 pre odpoveď č. 1

Toto sa stane, keď sa pokúsite o prístup k požiadavke ajax z inej domény na hlavnú stránku. (V tomto prípade budete pristupovať k adrese URL z Facebooku).

Ak potrebujete získať prístup k adrese URL z inej stránkysa nazýva Cross Site Request. Tieto sú štandardne blokované kvôli bezpečnostným dôsledkom, ale stále je možné ich vykonávať s trochou práce.

Je to celkom jednoduché urobiť s jQuery.

Zvláštnosťou je, že aj keď ste zahrnulijQuery v tagoch ​​na otázku, váš skutočný kód isn "t používať jQuery vôbec - v skutočnosti, celý kód, ktorý ste" by poskytol by bol jeden riadok v jQuery, plus by to fungovalo s cross-site požiadavky.

Musíte použiť techniku ​​Ajax volať JSONP, ktorú môžete nájsť zdokumentovanú na stránke jQuery tu: http://api.jquery.com/jQuery.ajax/

Kód by mal vyzerať takto:

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

dúfam, že to pomôže.