XMLHttpRequest.send()
XMLHttpRequest.send()方法用于實際發(fā)出 HTTP 請求。它的參數(shù)是可選的,如果不帶參數(shù),就表示 HTTP 請求只有一個 URL,沒有數(shù)據(jù)體,典型例子就是 GET 請求;如果帶有參數(shù),就表示除了頭信息,還帶有包含具體數(shù)據(jù)的信息體,典型例子就是 POST 請求。
下面是 GET 請求的例子。
var xhr = new XMLHttpRequest(); xhr.open('GET','http://www.example.com/?id=' + encodeURIComponent(id),true ); xhr.send(null);上面代碼中,GET請求的參數(shù),作為查詢字符串附加在 URL 后面。
下面是發(fā)送 POST 請求的例子。
var xhr = new XMLHttpRequest(); var data = 'email='+ encodeURIComponent(email)+ '&password='+ encodeURIComponent(password);xhr.open('POST', 'http://www.example.com', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send(data);注意,所有 XMLHttpRequest 的監(jiān)聽事件,都必須在send()方法調(diào)用之前設(shè)定。
send方法的參數(shù)就是發(fā)送的數(shù)據(jù)。多種格式的數(shù)據(jù),都可以作為它的參數(shù)。
void send(); void send(ArrayBufferView data); void send(Blob data); void send(Document data); void send(String data); void send(FormData data);如果send()發(fā)送 DOM 對象,在發(fā)送之前,數(shù)據(jù)會先被串行化。如果發(fā)送二進(jìn)制數(shù)據(jù),最好是發(fā)送ArrayBufferView或Blob對象,這使得通過 Ajax 上傳文件成為可能。
下面是發(fā)送表單數(shù)據(jù)的例子。FormData對象可以用于構(gòu)造表單數(shù)據(jù)。
var formData = new FormData();formData.append('username', '張三'); formData.append('email', 'zhangsan@example.com'); formData.append('birthDate', 1940);var xhr = new XMLHttpRequest(); xhr.open('POST', '/register'); xhr.send(formData);上面代碼中,FormData對象構(gòu)造了表單數(shù)據(jù),然后使用send()方法發(fā)送。它的效果與發(fā)送下面的表單數(shù)據(jù)是一樣的。
<form id='registration' name='registration' action='/register'><input type='text' name='username' value='張三'><input type='email' name='email' value='zhangsan@example.com'><input type='number' name='birthDate' value='1940'><input type='submit' onclick='return sendForm(this.form);'> </form>- ?
下面的例子是使用FormData對象加工表單數(shù)據(jù),然后再發(fā)送。
function sendForm(form) {var formData = new FormData(form);formData.append('csrf', 'e69a18d7db1286040586e6da1950128c');var xhr = new XMLHttpRequest();xhr.open('POST', form.action, true);xhr.onload = function() {// ...};xhr.send(formData);return false; }var form = document.querySelector('#registration'); sendForm(form);總結(jié)
以上是生活随笔為你收集整理的XMLHttpRequest.send()的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C4D骨骼绑定和骨骼动画
- 下一篇: WPF DataGridTextColu