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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
---
title: XMLHttpRequest.send()
slug: Web/API/XMLHttpRequest/send
tags:
- AJAX
- API
- Método HTTP
- NeedsExample
- Referencia
- Requisição HTTP
- Requisição XHR
- XHR
- XMLHttpRequest
- send
translation_of: Web/API/XMLHttpRequest/send
---
<p>{{APIRef('XMLHttpRequest')}}</p>
<p>O método <code><strong>send()</strong></code>, do {{domxref("XMLHttpRequest")}}, envia uma requisição para o servidor.Se a solicitação for assíncrona (que é o padrão), esse método retornará assim que a solicitação for enviada e o resultado for entregue usando eventos. Se a solicitação for síncrona, esse método não retornará até que a resposta chegue.</p>
<p><code>send()</code> aceita um parâmetro opcional que permite especificar o corpo da solicitação; isso é usado principalmente para solicitações como {{HTTPMethod("PUT")}}. Se o método de solicitação for {{HTTPMethod("GET")}} ou {{HTTPMethod("HEAD")}}, o parâmetro <code>body</code> será ignorado e o corpo da solicitação será definido como <code>null</code>.</p>
<p>Se nenhum cabeçalho {{HTTPHeader("Accept")}} tiver sido definido usando {{domxref("XMLHttpRequest.setRequestHeader", "setRequestHeader()")}}, um cabeçalho <code>Accept</code> com o tipo <code>"*/*"</code> (qualquer tipo) é enviado.</p>
<h2 id="Sintaxe">Sintaxe</h2>
<pre class="syntaxbox"><var>XMLHttpRequest</var>.send(<var>body</var>)
</pre>
<h3 id="Parâmetros">Parâmetros</h3>
<dl>
<dt><code>body</code> {{optional_inline}}</dt>
<dd>Um corpo de dados a ser enviado na solicitação XHR. Isso pode ser:
<ul>
<li>Um {{domxref("Document")}}, caso em que é serializado antes de ser enviado.</li>
<li>Um <code>BodyInit</code>, que <a href="https://fetch.spec.whatwg.org/#bodyinit">conforme a espeficicação Fetch</a>, pode ser um objeto {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, {{domxref("ReadableStream")}} ou {{domxref("USVString")}}.</li>
</ul>
Se nenhum valor for espeficicado para o corpo, o valor padrão de <code>null</code> é usado.</dd>
</dl>
<p>A melhor maneira de enviar conteúdo binário (por exemplo, em uploads de arquivos) é usando um {{domxref("ArrayBufferView")}} ou {{domxref("Blob")}} em conjunto com o método <code>send()</code>.</p>
<h3 id="Valor_retornado">Valor retornado</h3>
<p><code>undefined.</code></p>
<h3 id="Exceções">Exceções</h3>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Exceção</th>
<th scope="col">Descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>InvalidStateError</code></td>
<td><code>send()</code> já foi invocado para a requisição, e/ou a requisição está completa.</td>
</tr>
<tr>
<td><code>NetworkError</code></td>
<td>O tipo de recurso a ser buscada é um {{domxref("Blob")}} e o método não é <code>GET</code>.</td>
</tr>
</tbody>
</table>
<h2 id="Exemplo_GET">Exemplo: GET</h2>
<pre class="syntaxbox">var xhr = new XMLHttpRequest();
xhr.open('GET', '/server', true);
xhr.onload = function () {
// Requisição finalizada. Faça o processamento aqui.
};
xhr.send(null);
// xhr.send('string');
// xhr.send(new Blob());
// xhr.send(new Int8Array());
// xhr.send(document);</pre>
<h2 id="Exemplo_POST">Exemplo: POST</h2>
<pre class="syntaxbox">var xhr = new XMLHttpRequest();
xhr.open("POST", '/server', true);
// Envia a informação do cabeçalho junto com a requisição.
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { // Chama a função quando o estado mudar.
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
// Requisição finalizada. Faça o processamento aqui.
}
}
xhr.send("foo=bar&lorem=ipsum");
// xhr.send(new Int8Array());
// xhr.send(document);</pre>
<h2 id="Especificações">Especificações</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Especificação</th>
<th scope="col">Status</th>
<th scope="col">Comentário</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('XMLHttpRequest', '#the-send()-method', 'send()')}}</td>
<td>{{Spec2('XMLHttpRequest')}}</td>
<td>WHATWG living standard</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilidade_com_os_navegadores">Compatibilidade com os navegadores</h2>
<div>{{Compat("api.XMLHttpRequest.send")}}</div>
<h2 id="Veja_também">Veja também</h2>
<ul>
<li><a href="/pt-BR/docs/Web/API/XMLHttpRequest/Usando_XMLHttpRequest">Usando XMLHttpRequest</a></li>
<li><a href="/pt-BR/docs/Web/API/XMLHttpRequest/HTML_in_XMLHttpRequest">Obter arquivo HTML usando XMLHttpRequest</a></li>
</ul>
|