html向本地asp文件发送请求。IE11能接收到请求,但火狐浏览器、谷歌浏览器不行

我笑我痴 2017-11-29 02:36:29
最近在学AJAX,
于是模仿下面这个网站写了个“AJAX ASP/PHP 请求实例”。
http://www.w3school.com.cn/ajax/ajax_asp_php.asp
操作系统:win10 64位

写了HTML文件,文件名为“D:/CUsers/lzh/Desktop/HTML_TEST/20171128Ajax.HTML”:

<html>
<head>
<script type="text/javascript">
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}

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","http://127.0.0.1:8010/gethint.asp?q="+str,true);

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send();
}
</script>
</head>
<body>

<h3>请在下面的输入框中键入字母(A - Z):</h3>
<form action="">
姓氏:<input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>建议:<span id="txtHint"></span></p>

</body>
</html>


然后再写了个 asp文件,名称为“gethint.asp”

<!DOCTYPE html>
<html>
<body>
<%
response.expires=-1
dim a(30)
'用名字来填充数组
a(1)="Anna"
a(2)="Brittany"
a(3)="Cinderella"
a(4)="Diana"
a(5)="Eva"
a(6)="Fiona"
a(7)="Gunda"
a(8)="Hege"
a(9)="Inga"
a(10)="Johanna"
a(11)="Kitty"
a(12)="Linda"
a(13)="Nina"
a(14)="Ophelia"
a(15)="Petunia"
a(16)="Amanda"
a(17)="Raquel"
a(18)="Cindy"
a(19)="Doris"
a(20)="Eve"
a(21)="Evita"
a(22)="Sunniva"
a(23)="Tove"
a(24)="Unni"
a(25)="Violet"
a(26)="Liza"
a(27)="Elizabeth"
a(28)="Ellen"
a(29)="Wenche"
a(30)="Vicky"

'获得来自 URL 的 q 参数
q=ucase(request.querystring("q"))

'如果 q 大于 0,则查找数组中的所有提示
if len(q)>0 then
hint=""
for i=1 to 30
if q=ucase(mid(a(i),1,len(q))) then
if hint="" then
hint=a(i)
else
hint=hint & " , " & a(i)
end if
end if
next
end if

'如果未找到提示,则输出 "no suggestion"
'否则输出正确的值
if hint="" then
response.write("no suggestion")
else
response.write(hint)
end if
%>
</body>
</html>


然后安装和配置win10的IIS服务
具体开通方法百度“asp本地怎样运行和打开,win7下IIS的安装和配置”

然后把“gethint.asp”放到ISS的根路径下


验证下“gethint.asp”文件是否能正常运行


然后用火狐浏览器打开“D:/CUsers/lzh/Desktop/HTML_TEST/20171128Ajax.HTML”,在“姓氏”框里键入“a”,或者其它字符,发现下面的"建议"框没有任何反应。换成谷歌浏览器也是一样的情况


然后我用ie11打开,"建议"框有结果返回


各位大神,请问这是什么原因呢?

...全文
502 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2017-11-29
  • 打赏
  • 举报
回复
记得结贴了
我笑我痴 2017-11-29
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
跨域了,你都发布到iis了,干嘛还用file协议访问。将ajax请求的页面放到同一个网站来,不要部署到不同的端口去,不同端口也算跨域

Web开发学习资料推荐
asp json类库解析json字符串
javascipt修改css级联样式表类和伪类样式


多谢版主纠正!非常感谢!!!
按照不跨域原则,
我把“20171128Ajax.HTML”也放到IIS根目录后,然后修改里面的内容:

xmlhttp.open("GET","http://127.0.0.1:8010/gethint.asp?q="+str,true);
改为
xmlhttp.open("GET","./gethint.asp?q="+str,true);

然后火狐浏览器地址栏键入“http://localhost:8010/20171128Ajax.HTML”,然后成功了
Go 旅城通票 2017-11-29
  • 打赏
  • 举报
回复
跨域了,你都发布到iis了,干嘛还用file协议访问。将ajax请求的页面放到同一个网站来,不要部署到不同的端口去,不同端口也算跨域

Web开发学习资料推荐
asp json类库解析json字符串
javascipt修改css级联样式表类和伪类样式

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧