源码:
function add(){
var params=yc.serialize(document.myform);//序列化表单元素
console.log(params);
request=createXHR();
if(request){
//get请求
request.onreadystatechange=listener;
request.open("POST","http://192.168.15.222:8080/testxml/student.action",true);
request.setRequestHeader("Content-Type","applocation/x-www-form-urlencoded");
request.send(params);
}
}
运行之后出现问题
同源定义:如果两个页面拥有相同的协议(protocol),端口(如果指定),和主机,那么这两个页面就属于同一个源(origin)。
找了很久发现原因是:
关于setRequestHeader:
通常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTTP协议的头文件,告诉服务器客户端要下载什么信息以及相关的参数。而 XMLHTTP 就是通过HTTP协议取得网站上的文件数据的,所以也要发送HTTP头给服务器。 但是 XMLHTTP 默认的情况下有些参数可能没有说明在HTTP头里,这是当我们需要修改或添加这些参数时就用到了 setRequestHeader 方法。
CONTENT-TYPE:application/x-www-form-urlencoded含义是表示客户端提交给服务器文本内容的编码方式 是URL编码,即除了标准字符外,每字节以双字节16进制前加个“%”表示