我的实时网站HTML代码位于http://dev9.edisbest.com/PrinterManufacturers.htm?id=21
这在FireFox和Chrome中效果很好,并显示Status: Success
。请问任何人都可以告诉我为什么它在IE9.0上不起作用?
代码如下
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type='text/javascript'>
function hello(id){
var seriesurl = "http://t2json.tgoservices.com/818746/PrinterManufacturers/"+id+"/PrinterSeries"
$.ajax({
cache: false,
url: seriesurl
}).done(function(data, textStatus, jqXHR) {
$('#status').html(textStatus);
$.each(data.T2Json.PrinterSeries.Items, function(i,item) {
$("#content1").html('<a class="manufacturer" id="'+item.Id+'" href="#">'+ item.Name + '</a></br>');
});
}).fail(function(jqXHR, textStatus) {
$('#status').html(textStatus);
$('#content').html('(failed)');
})
}
$(document).ready( function() {
function getParameter(param) {
var val = document.URL;
var url = val.substr(val.indexOf(param))
var n=url.replace(param+"=","");
}
$('#time').html(new Date);
$('#status').html('');
$('#content').html('');
$.ajax({
cache: false,
url: $('#xhr_url').val()
}).done(function(data, textStatus, jqXHR) {
$('#status').html(textStatus);
$.each(data.T2Json.PrinterManufacturers.Items, function(i,item) {
$("#content").append('<a class="manufacturer" id="'+item.Id+'" onclick="hello('+item.Id+');" href="#">'+ item.Name + '</a></br>');
});
}).fail(function(jqXHR, textStatus) {
$('#status').html(textStatus);
$('#content').html('(failed)');
})
$('a .manufacturer').click(function(){
});
});
</script>
</head>
<body>
<input id='xhr_url' style='width:600px;' type='text' value='http://t2json.tgoservices.com/818746/PrinterManufacturers'/>
<div id='content1'></div>
<fieldset><legend>Time:</legend>
<div id='time'></div>
</fieldset>
<fieldset><legend>Status:</legend>
<div id='status'></div>
</fieldset>
<fieldset><legend>Content:</legend>
<div id='content'></div>
</fieldset>
</body>
答案 0 :(得分:0)
可能是因为第一个$.ajax({
超出了$(document).ready(
吗?这可能是一种竞争条件,在某些情况下,在$.ajax
尝试运行之前未加载jQuery。
这也是一个问题:
var url = val.substr(val.indexOf(param))
var n=url.replace(param+"=","");
那应该是:
var url = val.substr(val.indexOf(param)),
n=url.replace(param+"=","");
或
var url = val.substr(val.indexOf(param));
var n=url.replace(param+"=","");
答案 1 :(得分:-1)
这与您的代码无关,
您正在尝试制作跨域JSON请求,看起来好像您正在尝试使用Access-Control-Allow-Origin标头来解决此问题。但IE9不支持该标头,而是查找XDomainRequest,请参见此处:http://caniuse.com/#search=cors