admin管理员组文章数量:1428474
The following code is supposed to perform an AJAX request after the page loads, and then display the response of that AJAX call in a popup. This works in Firefox, but I have no idea why it does not work in IE8.
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript">
// Do this stuff when DOM finishes loading.
document.observe("dom:loaded", function() {
new Ajax.Request("page.html", {
onSuccess: function(response) {
alert(response.responseText);
}
});
});
</script>
</head>
<body>
</body>
</html>
page.html just contains
hello world
Am I missing something obvious or is this a result of the prototype js library not being fully patible with IE8? I tried this with the latest stable prototype release (1.6.0.3) and the bleeding-edge version (1.6.1 RC3) with no luck. Any help would be much appreciated, thanks!
The following code is supposed to perform an AJAX request after the page loads, and then display the response of that AJAX call in a popup. This works in Firefox, but I have no idea why it does not work in IE8.
<html>
<head>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript">
// Do this stuff when DOM finishes loading.
document.observe("dom:loaded", function() {
new Ajax.Request("page.html", {
onSuccess: function(response) {
alert(response.responseText);
}
});
});
</script>
</head>
<body>
</body>
</html>
page.html just contains
hello world
Am I missing something obvious or is this a result of the prototype js library not being fully patible with IE8? I tried this with the latest stable prototype release (1.6.0.3) and the bleeding-edge version (1.6.1 RC3) with no luck. Any help would be much appreciated, thanks!
Share Improve this question edited Dec 28, 2011 at 21:51 Rob W 349k87 gold badges807 silver badges682 bronze badges asked Jul 14, 2009 at 1:13 MatthewMatthew 6,4969 gold badges48 silver badges62 bronze badges 02 Answers
Reset to default 2Are you doing this in a web site or using a file? I was able to get your code working in a web site in Visual Studio, but when I tried it from a file I got an "Access Denied" error. I suspect that it is not able to do an Ajax request to a file in the local file system due to security restrictions in IE8.
Here's the exact code I used in my Default.aspx page to load the page.htm file. Note that I changed the method -- since it's not a form -- and I added callbacks for failure and exceptions. The exception callback was what got triggered for me with a local file. As I said, it works fine when accessing a page in the same web site.
<script type="text/javascript">
document.observe( 'dom:loaded', function() {
new Ajax.Request("page.htm", {
method: 'get',
onSuccess: function(response) {
alert(response.responseText);
},
onFailure: function(response) {
alert(response);
},
onException: function(request,error) {
alert(error.message);
}
});
});
</script>
Just an aside to the existing answer, and just wanted to mention, that IE8 does some crazy caching when you use 'get' in your Ajax calls. My web application worked fine in FF, but in IE8, some of the ajax calls were never made. I changed the method: from 'get' to 'post' and all was well.
method: 'post'
Also, to further ensure no funny business in IE8 with session variables, put the following meta tags in the head of your html pages.
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
本文标签: javascriptPrototype39s AjaxRequest and Internet Explorer 8Stack Overflow
版权声明:本文标题:javascript - Prototype's Ajax.Request and Internet Explorer 8 - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745463463a2659427.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论