当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。