aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/mozilla/javascript_code_modules/http.jsm/index.html
blob: 1e77c4e8522925a44aa102638d8fb8241d3b5c13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
title: Http.jsm
slug: Mozilla/JavaScript_code_modules/Http.jsm
tags:
  - API
  - HTTP
translation_of: Mozilla/JavaScript_code_modules/Http.jsm
---
<h2 id="HTTP.jsm">HTTP.jsm</h2>

<p>Http.jsm 提供了 httpRequest-XMLHttpRequest的包装器,它为处理HTTP请求提供了方便和简化的API。</p>

<p>httpRequest 支持以下参数:</p>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">name</th>
   <th scope="col">meaning</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>headers</td>
   <td>header 的数组</td>
  </tr>
  <tr>
   <td>postData</td>
   <td>
    <p>取值范围:</p>

    <ul>
     <li>string: 按原样发送</li>
     <li>数组: 编码为表单值</li>
     <li>null/undefined: 没有POST数据.</li>
    </ul>
   </td>
  </tr>
  <tr>
   <td>
    <p>method</p>
   </td>
   <td>GET, POST , PUT (如果postData存在,将自动设置).</td>
  </tr>
  <tr>
   <td>onLoad</td>
   <td>
    <p>加载完成时调用的方法,它接受两个参数:responseText和XHR对象。</p>
   </td>
  </tr>
  <tr>
   <td>onError</td>
   <td>
    <p>当错误发生时调用的方法,它接受三个参数:error、responseText和XHR对象。</p>
   </td>
  </tr>
  <tr>
   <td>logger</td>
   <td>
    <p>实现调试和日志方法的对象(例如log.jsm)。</p>
   </td>
  </tr>
 </tbody>
</table>

<p>header 或 postData 是作为二维数组给出的,对于每个内部数组,第一个值是键,第二个值是值。例如: [["key1", "value1"], ["key2", "value2"]].</p>

<h2 id="提交_post_数据">提交 post 数据</h2>

<p>httpRequest允许向post请求附加数据。可以通过postData选项指定数据。postData可以有两种类型:字符串或数组。当给出null/undefined时,将不发送任何数据。如果给定一个字符串,数据将按原样追加到请求中。如果给定一个参数数组,它将被视为一个键值对数组。数组的元素将采用url编码,并会强制设置content type为“application/x-www-form-urlencoded;charset=utf-8"。Http.jsm只在post数据是数组时强行设置content type,并自动序列化它。如果提供的postdata是一个字符串,则不设置内容类型。在这种情况下,可以通过header参数设置content type。</p>

<h2 id="可选的XHR_配置">可选的XHR 配置</h2>

<p>在调用httpRequest之后,可以手动修改XHR对象上的内容。httpRequest返回一个XHR对象,该对象可用于设置请求的附加参数。例如,可以将XHR配置为在处理响应时使用任何自定义mime类型,而不管服务器返回什么。为此,可以通过调用httpRequest获得XHR对象,然后调用它的<a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#overrideMimeType%28%29">overrideMimeType()</a>方法去设置MIME-Type。另一个<a href="http://mxr.mozilla.org/comm-central/source/chat/protocols/twitter/twitter.js#690">例子</a>可以在这里找到。</p>