4

我编写了一个函数来将表单提交到 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})

有关详细信息,请参见此处

如您所见,我已使用允许的所有 5 个参数,但由于某种原因,我收到此错误:

2 positional arguments expected, but 5 found

关于为什么的任何建议?

4

1 回答 1

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']);
于 2013-07-06T18:38:49.153 回答