html关于ajax创建XMLHttpRequest对象

qq_37852560 2017-06-08 12:43:41
为什么
alert 一下 就可以使用
不 alert 的话 什么提示都没有

代码 如下
创建 对象
function getXmlhttp(method,url,async,contents){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
if(window.ActiveXObject){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
if(!xmlhttp){
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}else{
alert("浏览器版本太低,请更换浏览器");
return;
}
}
xmlhttp.open(method,url,async);
if(method=='post'||method=='POST'){
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
}
xmlhttp.send(contents);

return xmlhttp;
}

function onreadystatechange(xmlhttp){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
return true;
}
}
return false;
}


测试代码
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="jQuery/jquery-1.9.1.js"></script>
<script src="jQuery/getXMLHttpRequest.js"></script>
<script>
window.onload = function() {
$("#bt1").click(function() {
var xmlhttp= getXmlhttp("get","ajax1.action",true,null);
// alert(xmlhttp);
if (onreadystatechange(xmlhttp)) {
alert("ok");
$("#d1").html(xmlhttp.responseText);
} else {
alert("no");
}
});
}
</script>
</head>
<body>
<div id="d1"
style="border: 1px solid red; width: 300px; height: 300px;"></div>
<button id="bt1">点我试试</button>
</body>
</html>

后台serlet
package cn.yubai.ajax1;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = "/ajax1.action")
public class AjaxServlet1 extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.print("点我干啥");
}
}
...全文
315 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2017-06-08
  • 打赏
  • 举报
回复
自己找本ajax的书来看,异步的要添加ajax对象添加onreadystatechange转换函数进行状态检查,而不是请求后用你自己的onreadystatechange方法来检查,send后直接检查红色那句肯定不成立的,没有返回。 if(xmlhttp.readyState==4){ if(xmlhttp.status==200){ window.onload = function () { $("#bt1").click(function () { var xmlhttp = getXmlhttp("get", "ajax1.action", true, null, function () { $("#d1").html(xmlhttp.responseText); }); }); } function getXmlhttp(method, url, async, contents,callback) { var xmlhttp; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } if (window.ActiveXObject) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); if (!xmlhttp) { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } else { alert("浏览器版本太低,请更换浏览器"); return; } } xmlhttp.open(method, url, async); if (method == 'post' || method == 'POST') { xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); } xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { if (xmlhttp.status == 200) { callback(xmlhttp.responseText)//////////////////// } } } xmlhttp.send(contents); return xmlhttp; }
qq_37852560 2017-06-08
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
<script type="text/javascript" src="jQuery/jquery-1.9.1.js"></script> 既然用了 jQuery,就没必要自己再造个轮子了 $.ajax 已经替你完成了一切辅助工作
如果不使用jquery呢 , 创建的部分怎么修改啊? @xuzuning
xuzuning 2017-06-08
  • 打赏
  • 举报
回复
<script type="text/javascript" src="jQuery/jquery-1.9.1.js"></script> 既然用了 jQuery,就没必要自己再造个轮子了 $.ajax 已经替你完成了一切辅助工作

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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