我无法在IE9上使用此脚本访问URL。在Chrome和Firefox上它运行正常。当我在IE9上调试( F12 )时,我收到:
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"]);
}
答案 0 :(得分:1)
当您尝试从其他域访问主页的ajax请求时会发生这种情况。 (在这种情况下,您正在从Facebook访问URL)。
如果您需要从其他域访问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
},
});
希望有所帮助。