【问题标题】:How to send path parameters in javascript?如何在javascript中发送路径参数?
【发布时间】:2020-01-28 05:45:27
【问题描述】:

所以我已经研究了好几天了,一直没能在网上找到答案。我正在 AWS API Gateway 中创建一个 API,并注意到“路径参数”和“查询参数”之间的区别。我已经阅读并知道它们之间的区别,何时应该使用它们等等。但是,我找不到的是如何实现和发送路径参数?

例如,当涉及到查询参数时,您可以在 ajax jQuery 的“数据”部分发送这些参数。简单。但同样,我怎样才能在该 ajax 调用中包含路径参数?我可以在 API GATEWAY 上设置路径,但不确定如何从前端发送数据。任何帮助将不胜感激。谢谢。

示例:root/{Animal}/

如何发送“动物”即“狗”作为路径参数而不是查询参数?即 /?animal=dog

【问题讨论】:

  • 如果您能够分享一些您迄今为止为此 ajax 请求编写的代码,并且如果您可以描述来自前端的预期信息流,那么这可能会有所帮助社区可以提供更有意义的答案。
  • 我用一个例子编辑了这个问题,除了 ajax 部分,因为我认为它没有帮助。

标签: javascript jquery rest uri aws-api-gateway


【解决方案1】:

你只需要形成 URL 字符串,不要用它发送任何数据。

let animal = 'dog';

$.ajax({ 
url: serviceUrl + '/' + animal,
method: 'GET',
success: function(res) { // your code }
});

如果您从 id 为 txtSearchAnimal 的文本框中获取输入:

let animal = $('#txtSearchAnimal').val();

并使用上面的 ajax 调用。

【讨论】:

  • 感谢您的回答。那么这是从 JavaScript 发送路径参数的“官方”方式吗?它看起来更像是“硬编码”而不是看起来更干净。例如,如何使用“数据”发送查询参数等。不过还是谢谢。一个问题,我仍然可以发送带有“数据”的查询参数以及带有路径参数的 URL 吗?如果需要,可以同时发送吗?
  • can I still send query parameters with 'data' as well as that URL with its path parameters as well? Is it ok to send both if needed? - 是的。你可以同时发送。根据 REST API 指南,路径参数是构建 URL 的方法,但我们可以同时使用这两种方法。总体思路是将所需参数保留为路径参数,将查询参数保留为可选参数。供您参考:stackoverflow.com/questions/11552248/…
  • So is that the "official" way of sending path parameters from JavaScript? It looks like more "hard-coded" as opposed to looking cleaner - 这只是一个例子。我还提到如果你有一个搜索文本框并且你想根据用户输入设置路径参数,你可以使用它。如果你想从配置中获得它,你只需要将配置值推送到变量(这里是它的动物,但可以是任何东西)
  • @UltimateTechDiscovery “硬编码而不是看起来更干净”?如何以任何方式硬编码与两个变量的字符串连接?比什么更干净?您可以使用插值而不是串联${serviceUrl}/${animal} 可能更干净,但您要寻找的是什么?
  • 我的意思是更简洁,因为存在执行该功能的东西,而不是将数据“硬编码”到 URL 中。例如,要发送带有查询参数的数据,您不需要将序列化字符串“硬编码”到 URL 中,就像字面上写“?cat=Chloe&dog=Marley”等一样,而是使用 ajax 'data 更简洁的方法' 即数据:序列化(xvariable);。看到不同?我想知道是否有一种官方更简洁的方式来处理路径参数,例如,除了路径参数之外,ajax 中的数据所做的事情;而不是直接写在 URL 上。
猜你喜欢
  • 1970-01-01
  • 2011-06-25
  • 2021-04-15
  • 1970-01-01
  • 2015-07-23
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
相关资源
最近更新 更多