javascript客户端异步Ajax不成功,请问是少软件吗?
小弟初学javascript,想在本机上测试效果,但是点了测试异步通讯,没有任何效果。2个浏览器都一样,请问是什么原因呢?HTML部分:<!DOCTYPEhtmlPUBL...
小弟初学javascript,想在本机上测试效果,但是点了测试异步通讯,没有任何效果。2个浏览器都一样,请问是什么原因呢?
HTML部分:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>XMLHttpRequest</title>
<script language="javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
}
function startRequest(){
createXMLHttpRequest();
xmlHttp.open("GET","9-1.aspx",true);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
alert("服务器返回: " + xmlHttp.responseText);
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<input type="button" value="测试异步通讯" onClick="startRequest()">
</body>
</html>
asp.net部分
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%
Response.Write("异步测试成功,很高兴");
%> 展开
HTML部分:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>XMLHttpRequest</title>
<script language="javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
}
function startRequest(){
createXMLHttpRequest();
xmlHttp.open("GET","9-1.aspx",true);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
alert("服务器返回: " + xmlHttp.responseText);
}
xmlHttp.send(null);
}
</script>
</head>
<body>
<input type="button" value="测试异步通讯" onClick="startRequest()">
</body>
</html>
asp.net部分
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%
Response.Write("异步测试成功,很高兴");
%> 展开
5个回答
展开全部
看了一下楼主的文件,基本上是没什么问题。你可以检查一下是不是asp.net部分出错了。你手动访问一下这个地址,看有没有正确打印出你的字符串。
还有就是你的asp.net文件跟你这个HTML文件在不在同一文件夹内。要不然会出现路径不对的错误。你只做了200成功状态码。没有做500或者404的错误处理,所以如果有以上情况的话,是不会有任何提示的。
如果还有问题。可以直接HI我。
还有就是你的asp.net文件跟你这个HTML文件在不在同一文件夹内。要不然会出现路径不对的错误。你只做了200成功状态码。没有做500或者404的错误处理,所以如果有以上情况的话,是不会有任何提示的。
如果还有问题。可以直接HI我。
更多追问追答
追问
我放到IIS里了但是为什么弹出的是这个东西呢?我的是IIS5.1, XP系统。
http://hiphotos.baidu.com/weilenenglian/pic/item/953aee1a301dfd78dc54015d.jpg
追答
那是因为你的IIS没有.net的运行环境。它没有运行。就当成文本处理了。把所有的源代码读出来了。
你这个异步是成功了。只是后台不支持.net罢了。把.net环境配置好。就可以了。
展开全部
推荐用火狐下的插件firebug调试ajax代码,超级管用。错误一目了然
追问
我放到IIS里了但是为什么弹出的是这个东西呢?我的是IIS5.1, XP系统。
http://hiphotos.baidu.com/weilenenglian/pic/item/953aee1a301dfd78dc54015d.jpg
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主是双击.htm页运行的,没有在iis里运行吧?
你ajax调用aspx文件没有环境肯定不认啊
你的HTML部分我测试过没问题的
你ajax调用aspx文件没有环境肯定不认啊
你的HTML部分我测试过没问题的
追问
我放到IIS里了但是为什么弹出的是这个东西呢?我的是IIS5.1, XP系统。
http://hiphotos.baidu.com/weilenenglian/pic/item/953aee1a301dfd78dc54015d.jpg
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jqrery中ajax调用($.ajax)运行出错调试方法
今天用jquery $.ajax 发送请求,发现老是不成功,在百度和google上搜索信息,发现大部分原因是由于ie6,ie7,ie8,firefox中关于创建xmlhttprequest对象的问题,还说是由于浏览器内置native xmlhttprequest支持原因造成,关于这个问题我们可以通过修改jquery的源代码来完成.
jquery 1.3.2
xhr:function(){
return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); //源代码部分
可以修改为
return window.XMLHttpRequest? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
当然网上还有一些别的建议,比如
方法一:
var xmlHttp;
if(window.XMLHttpRequest){
//针对Firefox, Mozillar, Opera, Safari, IE7, IE8
xmlHttp=new XMLHttpRequest();
if (xmlhttp.overrideMimeType)
xmlhttp.overrideMimeType("text/xml");
}
else if(window.ActiveXObject)
{
try{
//Firefox, Opera 8.0+, Safari
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
//Internet Explorer
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlHttp = false;
}
}
}
return xmlHttp;
方法二:
try{
if( window.ActiveXObject ){
for( var i = 5; i; i-- ){
try{
if( i == 2 ){
xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );
}else{
xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
}
xmlhttp_request.setRequestHeader("Content-Type","text/xml");
xmlhttp_request.setRequestHeader("Content-Type","gb2312");
break;}
catch(e){
xmlhttp_request = false;
}
}
}else if( window.XMLHttpRequest ){
xmlhttp_request = new XMLHttpRequest();
if (xmlhttp_request.overrideMimeType) {
xmlhttp_request.overrideMimeType(''text/xml'');
}
}
}catch(e){
xmlhttp_request = false;
}
总而言之,一定要根据浏览器的对应方式来创建:
常见的浏览器判断方式是
if (window.XMLHttpRequest) { //Mozilla, Safari,IE7,IE8
alert('Mozilla, Safari,IE7,IE8 ');
if(!window.ActiveXObject){ // Mozilla, Safari,
alert('Mozilla, Safari');
} else {
alert('IE7,IE8');
}
} else {
alert('IE6');
}
我们一定要了解这样写的原因,总而言之就是一定要根据浏览器方式来创建xmlhttprequest对象。
第二个问题:直接在vs2008环境中调试ie8,ie7 $.ajax总是报错,将整个网站部署到iis中,$.ajax运行正常,如果大家实在无法解决这个问题,可以进行部署尝试。
今天用jquery $.ajax 发送请求,发现老是不成功,在百度和google上搜索信息,发现大部分原因是由于ie6,ie7,ie8,firefox中关于创建xmlhttprequest对象的问题,还说是由于浏览器内置native xmlhttprequest支持原因造成,关于这个问题我们可以通过修改jquery的源代码来完成.
jquery 1.3.2
xhr:function(){
return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); //源代码部分
可以修改为
return window.XMLHttpRequest? new XMLHttpRequest() : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
当然网上还有一些别的建议,比如
方法一:
var xmlHttp;
if(window.XMLHttpRequest){
//针对Firefox, Mozillar, Opera, Safari, IE7, IE8
xmlHttp=new XMLHttpRequest();
if (xmlhttp.overrideMimeType)
xmlhttp.overrideMimeType("text/xml");
}
else if(window.ActiveXObject)
{
try{
//Firefox, Opera 8.0+, Safari
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
//Internet Explorer
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlHttp = false;
}
}
}
return xmlHttp;
方法二:
try{
if( window.ActiveXObject ){
for( var i = 5; i; i-- ){
try{
if( i == 2 ){
xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );
}else{
xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
}
xmlhttp_request.setRequestHeader("Content-Type","text/xml");
xmlhttp_request.setRequestHeader("Content-Type","gb2312");
break;}
catch(e){
xmlhttp_request = false;
}
}
}else if( window.XMLHttpRequest ){
xmlhttp_request = new XMLHttpRequest();
if (xmlhttp_request.overrideMimeType) {
xmlhttp_request.overrideMimeType(''text/xml'');
}
}
}catch(e){
xmlhttp_request = false;
}
总而言之,一定要根据浏览器的对应方式来创建:
常见的浏览器判断方式是
if (window.XMLHttpRequest) { //Mozilla, Safari,IE7,IE8
alert('Mozilla, Safari,IE7,IE8 ');
if(!window.ActiveXObject){ // Mozilla, Safari,
alert('Mozilla, Safari');
} else {
alert('IE7,IE8');
}
} else {
alert('IE6');
}
我们一定要了解这样写的原因,总而言之就是一定要根据浏览器方式来创建xmlhttprequest对象。
第二个问题:直接在vs2008环境中调试ie8,ie7 $.ajax总是报错,将整个网站部署到iis中,$.ajax运行正常,如果大家实在无法解决这个问题,可以进行部署尝试。
追问
我放到IIS里了但是为什么弹出的是这个东西呢?我的是IIS5.1, XP系统。
http://hiphotos.baidu.com/weilenenglian/pic/item/953aee1a301dfd78dc54015d.jpg
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你介绍个插件。jquery.js 。功能很是强大。异步入理也很方便。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询