当打开HttpRequest时,我得到这个错误:预期有2个位置参数,但是找到了5个

时间:2013-07-06 18:13:21

标签: dart dart-webui

我编写了一个将表单提交到REST API的函数。这是代码:

HttpRequest request;
void submitForm(Event e) {
   e.preventDefault(); // Don't do the default submit.

   request = new HttpRequest();

   request.onReadyStateChange.listen(onData); 

   // POST the data to the server.
   var url = 'http://127.0.0.1:8000/api/v1/users';
   request.open('GET', url, true, theData['userName'], theData['password']);
   request.send();
}

在打开请求时,您可以从文档中获得以下五个参数:

void open(String method, String url, {bool async, String user, String password})

有关详细信息,请参阅here

正如您所看到的,我已经使用了所有5个参数但由于某种原因我得到了这个错误:

2 positional arguments expected, but 5 found

有关原因的任何建议吗?

1 个答案:

答案 0 :(得分:3)

正常参数称为位置参数(在本例中类似于方法和url)。大括号中的参数是可选的命名参数:

void open(String method, String url, {bool async, String user, String password})

它们是可选的,如果您不需要它们,则无需传递它们。调用时顺序并不重要。如果需要传递它们,请在其前面加上名称和冒号。在你的情况下:

request.open('GET', url, async: true, user: theData['userName'], password: theData['password']);