當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Dart HttpRequest.request用法及代碼示例


dart:html 庫中HttpRequest.request 方法的用法介紹如下。

用法:

Future<HttpRequest> request(
   String url,    
   {String? method,    
   bool? withCredentials,    
   String? responseType,    
   String? mimeType,    
   Map<String, String>? requestHeaders,    
   dynamic sendData,    
   void onProgress(
   ProgressEvent e   
)?}   
)

為指定的 url 創建並發送 URL 請求。

默認情況下 request 將執行 HTTP GET 請求,但可以通過指定 method 參數來使用不同的方法(POSTPUTDELETE 等)。 (僅針對 POST 請求,請參見 HttpRequest.postFormData

當響應可用時,Future 完成。

如果指定,sendData 將以 ByteBufferBlobDocumentStringFormData 的形式與 HttpRequest 一起發送數據。

如果指定,responseType 為請求設置所需的響應格式。默認情況下它是String,但也可以是'arraybuffer', 'blob', 'document', 'json',或'text'。另請參閱HttpRequest.responseType 了解更多信息。

withCredentials 參數指定應為請求指定在標頭中設置的 cookie(已經)或 authorization headers 等憑據。使用憑據時要記住的詳細信息:

  • 使用憑據僅對 cross-origin 請求有用。
  • urlAccess-Control-Allow-Origin 標頭不能包含通配符 (*)。
  • urlAccess-Control-Allow-Credentials 標頭必須設置為 true。
  • 如果 Access-Control-Expose-Headers 未設置為 true,則在調用 getAllResponseHeaders 時將僅返回所有響應標頭的子集。

以下等效於上麵的getString 示例:

var name = Uri.encodeQueryComponent('John');
var id = Uri.encodeQueryComponent('42');
HttpRequest.request('users.json?name=$name&id=$id')
  .then((HttpRequest resp) {
    // Do something with the response.
});

這是使用 FormData 提交整個表單的示例。

var myForm = querySelector('form#myForm');
var data = new FormData(myForm);
HttpRequest.request('/submit', method: 'POST', sendData: data)
  .then((HttpRequest resp) {
    // Do something with the response.
});

請注意,隻有在清單中具有適當權限的 Chrome 擴展程序才支持對 file://URI 的請求。對 file://URI 的請求也永遠不會失敗 - Future 將始終成功完成,即使找不到文件。

另請參閱:authorization headers

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 request method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。