Skip to content

Commit

Permalink
fix redirects
Browse files Browse the repository at this point in the history
  • Loading branch information
yin1999 committed Nov 9, 2023
1 parent 6f044fe commit f8466e4
Show file tree
Hide file tree
Showing 12 changed files with 52 additions and 53 deletions.
2 changes: 1 addition & 1 deletion files/zh-tw/glossary/synchronous/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ _同步_(Synchronous)是指各方在接收(必要的話還會執行與回
### 技術參考

- {{glossary("Asynchronous","非同步")}}
- 使用 [XMLHttpRequest()](/zh-TW/docs/Web/API/XMLHttpRequest) {{glossary("API")}} 完成 [同步與非同步請求](/zh-TW/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests)
- 使用 [XMLHttpRequest()](/zh-TW/docs/Web/API/XMLHttpRequest) {{glossary("API")}} 完成[同步與非同步請求](/zh-TW/docs/Web/API/XMLHttpRequest_API/Synchronous_and_Asynchronous_Requests)
2 changes: 1 addition & 1 deletion files/zh-tw/learn/forms/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ slug: Learn/Forms
7. [如何創建自定義表單控件](/zh-TW/docs/HTML/Forms/How_to_build_custom_form_widgets)
8. [通過 JavaScript 發送形式](/zh-TW/docs/HTML/Forms/Sending_forms_through_JavaScript)

1. [使用 FORMDATA 對象](/zh-TW/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects)
1. [使用 FORMDATA 對象](/zh-TW/docs/DOM/XMLHttpRequest/XMLHttpRequest_API/Using_FormData_Objects)

9. [在傳統的瀏覽器的 HTML 表單](/zh-TW/docs/HTML/Forms/HTML_forms_in_legacy_browsers)

Expand Down
6 changes: 3 additions & 3 deletions files/zh-tw/learn/javascript/objects/json/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -327,13 +327,13 @@ myString;

## 摘要

我們透過本文簡單介紹了該如何在程式中使用 JSON、該如何建立\剖析 JSON、該如何存取其內的資料。接著就要說明物件導向 JavaScript (OOJS)
我們透過本文簡單介紹了該如何在程式中使用 JSON、該如何建立\剖析 JSON、該如何存取其內的資料。接著就要說明物件導向 JavaScriptOOJS

## 另可參閱
## 參見

- [JSON 物件參考頁面](/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/JSON)
- [XMLHttpRequest 物件參考頁面](/zh-TW/docs/Web/API/XMLHttpRequest)
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest)
- [HTTP 請求函式](/zh-TW/docs/Web/HTTP/Methods)

{{PreviousMenuNext("Learn/JavaScript/Objects/Inheritance", "Learn/JavaScript/Objects/Object_building_practice", "Learn/JavaScript/Objects")}}
Original file line number Diff line number Diff line change
Expand Up @@ -442,11 +442,11 @@ function fileUpload(file) {

_使用二進制數據時,這些程式碼還需要修改。_

## 你也可以參考這些文章
## 參見

- {{domxref("File")}}
- {{domxref("FileList")}}
- {{domxref("FileReader") }}
- [Using XMLHttpRequest](/zh-TW/DOM/XMLHttpRequest/Using_XMLHttpRequest)
- [使用 XMLHttpRequest](/zh-TW/DOM/XMLHttpRequest_API/Using_XMLHttpRequest)
- [Using the DOM File API in chrome code](/zh-TW/Extensions/Using_the_DOM_File_API_in_chrome_code)
- {{domxref("XMLHttpRequest")}}
32 changes: 16 additions & 16 deletions files/zh-tw/web/api/formdata/get/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,44 @@ slug: Web/API/FormData/get

{{APIRef("XMLHttpRequest")}}

{{domxref("FormData")}} 的 **`get()`** 方法會返回 `FormData 物件中,`指定 key 值所對應之第一組物件中的 value 值 。然而,如果您想要獲得多組以及全部的 value ,那應該使用 {{domxref("FormData.getAll()","getAll()")}} 方法。
{{domxref("FormData")}} 的 **`get()`** 方法會返回 `FormData 物件中,指定 `key` 值所對應之第一組物件中的 value 值。然而,如果你想要獲得多組以及全部的 value,那應該使用 {{domxref("FormData.getAll()","getAll()")}} 方法。

**注意**: 這個方法已可以在 [Web Workers](/zh-TW/docs/Web/API/Web_Workers_API) 中使用。
**注意**: 這個方法已可以在 [Web Worker](/zh-TW/docs/Web/API/Web_Workers_API) 中使用。

## 語法

```plain
```js
formData.get(name);
```

### 參數

- `name`
- : 一個 {{domxref("USVString")}} ,代表您想要得到的 value 所對應的 key 值名稱。
- : 一個 {{domxref("USVString")}},代表你想要得到的 value 所對應的 key 值名稱。

### 回傳值

A {{domxref("FormDataEntryValue")}} containing the value.

## 範例

下面一行程式會產生一個空的 `FormData 物件:`
下面一行程式會產生一個空的 `FormData` 物件:

```plain
```js
var formData = new FormData();
```

用 {{domxref("FormData.append")}} 方法新增兩組 `username`
用 {{domxref("FormData.append")}} 方法新增兩組 `username`

```plain
formData.append('username', 'Chris');
formData.append('username', 'Bob');
```js
formData.append("username", "Chris");
formData.append("username", "Bob");
```

接下來使用 `get() 方法,將只會返回上一步驟,第一組新增的 username 所對應的值`
接下來使用 `get()` 方法,將只會返回上一步驟,第一組新增的 `username` 所對應的值

```plain
formData.get('username'); // Returns "Chris"
```js
formData.get("username"); // 返回 "Chris"
```

## 規範
Expand All @@ -53,9 +53,9 @@ formData.get('username'); // Returns "Chris"

{{Compat}}

## 延伸閱讀
## 參見

- {{domxref("XMLHTTPRequest")}}
- [Using XMLHttpRequest](/zh-TW/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest)
- [Using FormData objects](/zh-TW/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects)
- [使用 XMLHttpRequest](/zh-TW/docs/DOM/XMLHttpRequest_API/Using_XMLHttpRequest)
- [使用 FormData 物件](/zh-TW/docs/DOM/XMLHttpRequest/XMLHttpRequest_API/Using_FormData_Objects)
- {{HTMLElement("Form")}}
4 changes: 2 additions & 2 deletions files/zh-tw/web/api/formdata/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,6 @@ slug: Web/API/FormData
## 參見

- {{domxref("XMLHTTPRequest")}}
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)
- [使用 FormData 物件](/zh-TW/docs/Web/API/FormData/Using_FormData_Objects)
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest)
- [使用 FormData 物件](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_FormData_Objects)
- {{HTMLElement("Form")}}
6 changes: 3 additions & 3 deletions files/zh-tw/web/api/xmlhttprequest/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ _此介面也繼承了 {{domxref("XMLHttpRequestEventTarget")}} 及 {{domxref("E

所有瀏覽器都支援 `XMLHttpRequest` 物件實體的 `onreadystatechange` 屬性。

之後,各個瀏覽器實作了多種額外的事件處理器(如 `onload``onerror``onprogress` 等)。請參考[使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)
之後,各個瀏覽器實作了多種額外的事件處理器(如 `onload``onerror``onprogress` 等)。請參考[使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest)

除了以 `on*` 屬性來設定事件處理函式,更多現代覽瀏器(包括 Firefox)也支援使用標準的 [`addEventListener()`](/zh-TW/docs/Web/API/EventTarget/addEventListener) API 註冊監聽 `XMLHttpRequest` 的事件。

Expand Down Expand Up @@ -118,8 +118,8 @@ _此介面也繼承了 {{domxref("XMLHttpRequestEventTarget")}} 及 {{domxref("E
- MDN 上涵蓋 XMLHttpRequest 的相關教學:

- [Ajax](/zh-TW/docs/Web/Guide/AJAX)
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)
- [HTML in XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest)
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest)
- [HTML in XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/HTML_in_XMLHttpRequest)
- [`FormData`](/zh-TW/docs/Web/API/FormData)

- [HTML5 Rocks — New Tricks in XMLHttpRequest2](http://www.html5rocks.com/en/tutorials/file/xhr2/)
Expand Down
4 changes: 2 additions & 2 deletions files/zh-tw/web/api/xmlhttprequest/setrequestheader/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,5 @@ XMLHttpRequest.setRequestHeader(header, value)

## 參見

- [Using XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)
- [HTML in XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest)
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest)
- [HTML in XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/HTML_in_XMLHttpRequest)
10 changes: 5 additions & 5 deletions files/zh-tw/web/api/xmlhttprequest/xmlhttprequest/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ slug: Web/API/XMLHttpRequest/XMLHttpRequest

**`XMLHttpRequest()`** 建構式會建立一個新的 {{domxref("XMLHttpRequest")}} 物件。

關於如何使用 `XMLHttpRequest` 物件的細節,請參照: [Using XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest).
關於如何使用 `XMLHttpRequest` 物件的細節,請參照:[使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest)

## 語法

```plain
```js
const request = new XMLHttpRequest();
```

Expand All @@ -27,7 +27,7 @@ const request = new XMLHttpRequest();

Firefox 16 added a non-standard parameter to the constructor that can enable anonymous mode (see [Firefox bug 692677](https://bugzil.la/692677)). Setting the `mozAnon` flag to `true` effectively resembles the [`AnonXMLHttpRequest()`](http://www.w3.org/TR/2012/WD-XMLHttpRequest-20120117/#dom-anonxmlhttprequest) constructor described in older versions of the XMLHttpRequest specification.

```plain
```js
const request = new XMLHttpRequest(paramsDictionary);
```

Expand All @@ -44,5 +44,5 @@ const request = new XMLHttpRequest(paramsDictionary);

## 參見

- [Using XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)
- [HTML in XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest)
- [使用 XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest)
- [HTML in XMLHttpRequest](/zh-TW/docs/Web/API/XMLHttpRequest_API/HTML_in_XMLHttpRequest)
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
title: 使用 XMLHttpRequest
slug: Web/API/XMLHttpRequest_API/Using_XMLHttpRequest
original_slug: Web/API/XMLHttpRequest/Using_XMLHttpRequest
---

要送出一個 HTTP 請求,需要建立一個 {{domxref("XMLHttpRequest")}} 物件、開啟一個 URL,並發起一個請求。在交易(transaction)完成後,`XMLHttpRequest` 物件將會包含如回應內容(response body)及 [HTTP 狀態](/docs/Web/HTTP/Status)等等請求結果中的有用資訊。本頁概述了一些常見的、甚至略為難理解的 `XMLHttpRequest` 物件使用案例。
Expand All @@ -19,7 +18,7 @@ oReq.send();

## 請求類型

透過 `XMLHttpRequest` 建立的請求,其取得資料的方式可以為非同步(asynchronously)或同步(synchronously)兩種之一。請求的種類是由 {{domxref("XMLHttpRequest.open()")}} 方法的選擇性參數 `async`(第三個參數)決定。若 `async` 參數為 `true` 或是未指定,`XMLHttpRequest` 會被設定為非同步,相反的若為 `false` 則會被設定為同步。這兩種請求類型的細節討論與示範可以在[同步與非同步請求](/docs/DOM/XMLHttpRequest/Synchronous_and_Asynchronous_Requests)頁面中找到。一般來說,很少會使用到同步請求。
透過 `XMLHttpRequest` 建立的請求,其取得資料的方式可以為非同步(asynchronously)或同步(synchronously)兩種之一。請求的種類是由 {{domxref("XMLHttpRequest.open()")}} 方法的選擇性參數 `async`(第三個參數)決定。若 `async` 參數為 `true` 或是未指定,`XMLHttpRequest` 會被設定為非同步,相反的若為 `false` 則會被設定為同步。這兩種請求類型的細節討論與示範可以在[同步與非同步請求](/docs/DOM/XMLHttpRequest_API/Synchronous_and_Asynchronous_Requests)頁面中找到。一般來說,很少會使用到同步請求。

> **備註:** 自 Gecko 30.0 開始,在主執行緒上的同步請求因其差勁的使用者體驗已被棄用。
Expand All @@ -38,7 +37,7 @@ oReq.send();

### 分析及操作含有 HTML 文件的 `responseText` 屬性

> **備註:** W3C 的[XMLHttpRequest](https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html) 規範允許透過 `XMLHttpRequest.responseXML` 屬性({{Glossary("property/JavaScript", "property")}})來解析 HTML。相關細節請參考 [HTML in XMLHttpRequest](/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest) 一文。
> **備註:** W3C 的[XMLHttpRequest](https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html) 規範允許透過 `XMLHttpRequest.responseXML` 屬性({{Glossary("property/JavaScript", "property")}})來解析 HTML。相關細節請參考 [HTML in XMLHttpRequest](/docs/Web/API/XMLHttpRequest_API/HTML_in_XMLHttpRequest) 一文。
若透過 `XMLHttpRequest` 來取得一個遠端的 HTML 網頁內容,則 `responseText` 屬性({{Glossary("property/JavaScript", "property")}})會是「一串(soup)」包含所有 HTML 標籤的字串。這可能使得在分析和操作上造成困難,以下有三種主要分析此一大串 HTML 字串的方式:

Expand Down Expand Up @@ -72,7 +71,7 @@ oReq.responseType = "arraybuffer";
oReq.send();
```

更多的範例可參考[傳送及接收二進位資料](/docs/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data)頁面。
更多的範例可參考[傳送及接收二進位資料](/docs/DOM/XMLHttpRequest_API/Sending_and_Receiving_Binary_Data)頁面。

## 監視進度

Expand Down Expand Up @@ -258,7 +257,7 @@ function loadEnd(e) {
|*|
|*| :: AJAX Form Submit Framework ::
|*|
|*| https://developer.mozilla.org/zh-TW/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest
|*| https://developer.mozilla.org/zh-TW/docs/DOM/XMLHttpRequest_API/Using_XMLHttpRequest
|*|
|*| This framework is released under the GNU Public License, version 3 or later.
|*| https://www.gnu.org/licenses/gpl-3.0-standalone.html
Expand Down Expand Up @@ -594,13 +593,13 @@ AJAXSubmit(myForm);

> **備註:** 此框架使用了 {{domxref("FileReader")}} API 來發送檔案上傳。這是個較新的 API,且 IE9 或其先前版本並未實作。因為這個理由,AJAX-only 上傳被認為是**一項實驗性技術**。若沒有需要上傳二進位檔案,此框架可於大部分瀏覽器中運作良好。
> **備註:** 傳送二進位檔案的最佳方式是藉由 {{jsxref("ArrayBuffer", "ArrayBuffers")}} 或 {{domxref("Blob", "Blobs")}} 結合 {{domxref("XMLHttpRequest.send()", "send()")}} 方法來送出,如果可以也能搭配 `FileReader` API 的 {{domxref("FileReader.readAsArrayBuffer()", "readAsArrayBuffer()")}} 方法先進行讀取。但因為這段程式指令碼(script)的目的是要處理[可字串化的](/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)原始資料,所以使用 {{domxref("XMLHttpRequest.sendAsBinary()", "sendAsBinary()")}} 方法結合 `FileReader` API 的 {{domxref("FileReader.readAsBinaryString()", "readAsBinaryString()")}} 方法。就其本身來看,以上的指令碼只有在處理小型檔案時才有意義。假如不打算上傳二進位內容,請考慮使用 `FormData` API。
> **備註:** 傳送二進位檔案的最佳方式是藉由 {{jsxref("ArrayBuffer", "ArrayBuffers")}} 或 {{domxref("Blob", "Blobs")}} 結合 {{domxref("XMLHttpRequest.send()", "send()")}} 方法來送出,如果可以也能搭配 `FileReader` API 的 {{domxref("FileReader.readAsArrayBuffer()", "readAsArrayBuffer()")}} 方法先進行讀取。但因為這段程式指令碼(script)的目的是要處理[可字串化的](/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)原始資料,所以使用 {{domxref("XMLHttpRequest.sendAsBinary()", "sendAsBinary()")}} 方法結合 `FileReader` API 的 {{domxref("FileReader.readAsBinaryString()", "readAsBinaryString()")}} 方法。就其本身來看,以上的指令碼只有在處理小型檔案時才有意義。假如不打算上傳二進位內容,請考慮使用 `FormData` API。
> **備註:** 非標準的 `sendAsBinary` 方法在 Gecko 31 已被認為是棄用的(deprecated),並且即將被移除。而標準的 `send(Blob data)` 方法可以作為替代。
### 使用 FormData 物件

{{domxref("XMLHttpRequest.FormData", "FormData")}} 建構式可以讓我們收集一連串名/值對資料並透過 `XMLHttpRequest` 送出。其主要用於傳送表單資料,但也能夠單獨的由表單建立來傳輸使用者輸入的資料。若表單的編碼類型(encoding type)被設定為「multipart/form-data」,則由 `FormData` 所發送的資料格式和表單用來傳送資料的 `submit()` 方法相同。FormData 物件可以搭配 `XMLHttpRequest` 以多種方式使用。相關的範例,以及可以怎麼利用 FormData 配合 XMLHttpRequest 的說明,請參考[使用 FormData 物件](/docs/DOM/XMLHttpRequest/FormData/Using_FormData_Objects)頁面。為了教學使用,下方為**一個利用 `FormData` API 來改寫[先前範例](#小型原生框架)*翻譯*版本**。注意這段精簡後的程式碼:
{{domxref("XMLHttpRequest.FormData", "FormData")}} 建構式可以讓我們收集一連串名/值對資料並透過 `XMLHttpRequest` 送出。其主要用於傳送表單資料,但也能夠單獨的由表單建立來傳輸使用者輸入的資料。若表單的編碼類型(encoding type)被設定為「multipart/form-data」,則由 `FormData` 所發送的資料格式和表單用來傳送資料的 `submit()` 方法相同。FormData 物件可以搭配 `XMLHttpRequest` 以多種方式使用。相關的範例,以及可以怎麼利用 FormData 配合 XMLHttpRequest 的說明,請參考[使用 FormData 物件](/zh-TW/docs/DOM/XMLHttpRequest/XMLHttpRequest_API/Using_FormData_Objects)頁面。為了教學使用,下方為**一個利用 `FormData` API 來改寫[先前範例](#小型原生框架)*翻譯*版本**。注意這段精簡後的程式碼:

```html hidden
<!doctype html>
Expand Down Expand Up @@ -884,7 +883,7 @@ var oReq = new XMLHttpRequest();

## 參見

- [XMLHttpRequest 中的 HTML](/zh-TW/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest)
- [XMLHttpRequest 中的 HTML](/zh-TW/docs/Web/API/XMLHttpRequest_API/HTML_in_XMLHttpRequest)
- [HTTP 存取控制](/zh-TW/docs/Web/HTTP/CORS)
- [XMLHttpRequest - REST and the Rich User Experience](https://www.peej.co.uk/articles/rich-user-experience.html)
- ["Using the XMLHttpRequest Object" (jibbering.com)](https://jibbering.com/2002/4/httprequest.html)
Expand Down
Loading

0 comments on commit f8466e4

Please sign in to comment.