# 附錄
## 嵌入式 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
```