附录
嵌入式 HTML 标签
<IMG SRC=”http://server/path/”>
浏览器发送的 HTTP GET 请求类似如下:
GET http://server/path/ HTTP/1.1
Host: host
User-Agent: Firefox/1.5.0.1
Content-length: 0
表单也可用于:
<FORM ACTION=”http://server/path/” NAME=”myform” METHOD=”POST”>
<INPUT TYPE=”HIDDEN” NAME=”Username” VALUE=”Foo”>
<INPUT TYPE=”HIDDEN” NAME=”Password” VALUE=”Bar”>
</FORM>
然后使用 JavaScript,我们可以自动提交表单:
<SCRIPT language=”JavaScript”> document.myform.submit();
</SCRIPT>
浏览器发送的 HTTP POST 请求类似如下:
POST http://server/path/ HTTP/1.1
Host: server
User-Agent: Firefox/1.5.0.1
Content-length: 25
Username=Foo&Password=Bar
一个 JavaScript 发起的表单提交可能导致的网络浏览器发出一个警告对话框,用户可能会进行点击。其他的 html
标签包括 APPLET,BASE,BODY,EMBED,LAYER,META,OBJECT,LINK,SCRIPT 和 STYLE 也可以达到同样的效果。
JavaScript DOM 对象
var img = new Image();
img.src = “http://server/path/”;
浏览器发送一个 HTTP GET 请求类似如下:
GET http://server/path/
HTTP/1.1
Host: server
User-Agent: Firefox/1.5.0.1
Content-length: 0
使用 JavaScript DOM 对象创建一个 HTML 表单:
var form = document.createElement(‘form’);
form.setAttribute(“action”, “http://server/path/”);
form.setAttribute(“method”, “POST”);
form.setAttribute(“name”, “myform”);
var input 1 = document.createElement(‘input’);
input1.setAttribute(“type”, “hidden”);
input1.setAttribute(“name”, “Username”);
input1.setAttribute(“value”, “Foo”);
var input 2 = document.createElement(‘input’);
input2.setAttribute(“type”, “hidden”);
input2.setAttribute(“name”, “Password”);
input2.setAttribute(“value”, “Bar”);
document.body.appendChild(form);
form.appendChild(input1);
form.appendChild(input2);
form.myform.submit();
JavaScript 会自动提交表单,导致 Web 浏览器发送一个 HTTP POST 请求类似如下:
POST http://server/path/ HTTP/1.1
Host: server
User-Agent: Firefox/1.5.0.1
Content-length: 25
Username=Foo&Password=Bar
XmlHttpRequest (XHR)
var req = new XMLHttpRequest();
req.open(‘GET’, ‘http://server/path)/’, true);
req.onreadystatechange = function () {
if (req.readyState == 4) {
alert(req.responseText);
}
};
req.send(null);
浏览器发送的 HTTP GET 请求类似如下:
GET http://server/path/ HTTP/1.1
Host: server
User-Agent: Firefox/1.5.0.1
Content-length: 0
使用 XHR 发送一个 POST 请求:
var post_data = “Username=Foo&Password=Bar”;
var req = new XMLHttpRequest();
req.open(POST, ‘ http://host/path/’, true);
req.onreadystatechange = function () {
if (req.readyState == 4) {
alert(req.responseText);
}
};
req.send(post_data);
发送的 POST 请求类似如下:
POST http://server/path/ HTTP/1.1
Host: server
User-Agent: Firefox/1.5.0.1
Content-length: 25
Username=Foo&Password=Bar