我试着打开一篇关于这个问题的帖子(here),认为编写代码是错误的。现在或多或少我已经明白,我的代码的某些版本的Jquery在IE7上不起作用。发生了什么?我还尝试在JQuery官方论坛(link)上发帖,但没有人回复。无论如何,在我的旧网站上,我曾经使用jquery-1.3.2.min.js,我没有遇到任何问题。现在,我需要使用.delegate()函数,所以我包含了jquery-1.4.2.min.js库。
上面你可以看到我在旧应用程序中使用的常用代码:
// html page
<a href="#" onClick="pmNew('1');return false">prova</a>
// javascript page
function pmNew(mexid) {
var time = new Date;
$.ajax({
type: 'POST',
url: './folder/ajax.php',
data: 'mexid='+escape(mexid)+'&id=pmnew',
success: function(msg) {
alert(msg);
}
});
return false;
}
// asynchf.php
if($_POST['id']=="pmnew") {
echo "please, i will just print this";
}
根据本网站的一些用户的一些建议,我编辑了这些功能:
// html page
<a href="#" onClick="pmNew('1');return false">prova</a>
// javascript page
function pmNew(mexid) {
var time = new Date;
$.ajax({
type: 'POST',
cache: false,
url: './folder/ajax.php' + '?dummy=' + time.getTime(),
data: 'mexid='+escape(mexid)+'&id=pmnew',
success: function(msg) {
alert(msg);
}
});
return false;
}
// asynchf.php
if($_POST['id']=="pmnew") {
echo "please, i will just print this";
}
但它仍然没有在IE7上工作。 Firefox,Chrome,它摇滚。它只适用于IE7,如果我加载页面,我尝试(我得到错误信息),我重新加载(F5),我重试。或者,正如我之前所说,我改变了Jquery的版本:)
我在真实服务器上加载了一个测试页(所以你可以检查一下这个问题):click here
我希望有人可以帮我解决这个大麻烦。
干杯
答案 0 :(得分:4)
此错误背后的原因是当您在IE7上使用相对URL时,它实际上会添加您的基本URL(或者您的页面加载的位置,例如,如果您在主页上放置相对URL,则您的相对URL实际上是{ {1}})
我刚刚在SO上遇到了你的问题,同时在几分钟前我自己解决了同样的问题。实际上an article from microsoft's blog解释了IE7如何处理相对网址(这很有趣,因为它只是表明他们为他们的愚蠢浏览器如何工作感到自豪) 看到你还没有回答,我会把我的解决方案放在这里以供将来参考和其他开发人员使用。
我所做的是使用http://gabbatracklistworld.com/http://gabbatracklistworld.com/folder/ajax.php
去除我的基本网址的实例,强制ajax请求使用实际的相对网址。
答案 1 :(得分:0)
您可以将此参数添加到.Ajax选项中:
error:function(xhr, status, errorThrown) {
alert(errorThrown+'\n'+status+'\n'+xhr.statusText);
},
并回复消息?