我在处理多个参数时遇到麻烦。我可以通过一个,但不确定是否可以通过多个。我在网页中有此JS代码:
$.getJSON('api/vendor/countryVendors/'+country+'&'+resourceType, function(result){}
以及我的Vapor控制器中的以下内容:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.parameters.next(String.self)
let resourceTypeString = try req.parameters.next(String.self)
不确定我创建的网址是错误的还是我的Swift代码或两者都错误
答案 0 :(得分:3)
您似乎想通过query-string parameters,这与route path parameters不同。在这种情况下,两个摘要都是错误的。
查询字符串参数是附加在URL末尾的键/值对,如下所示:
/my/url/path?key=value&key1=value1
因此,您在JS代码中的网址应如下所示:
'api/vendor/countryVendors?country='+country+'&resourceType='+resourceType
要从传递给路由处理程序的URL中获取查询字符串参数,请使用request.query
属性和.get(_:at:)
方法:
func getcountryVendors(_ req: Request) throws -> Future<[Vendor]> {
let countryString = try req.query.get(String.self, at: "country")
let resourceTypeString = try req.query.get(String.self, at: "resourceType")
// Other code...
}