我在Angular2网站上查询一些弹性搜索服务器.为了帮助提高安全性,我们希望锁定对GET请求的访问权限.Elasticsearch支持GET与一个正文,但我在使用Angular2的http类时遇到麻烦.
this.http.post(SearchEndpoint, q.BuildPayload(), { method: 'GET' })
Run Code Online (Sandbox Code Playgroud)
由于http.get没有body参数,我试图使用post方法.以前我会离开RequestOptionsArgs,{ method: 'GET' }POST将成功通过正文.通过在第三个参数中指定方法,http类将从请求中删除正文.
是否可以在Angular 2中使用正文发出GET请求?
Thi*_*ier 13
我认为原始XHR对象不允许这样做.引用规范(参见https://xhr.spec.whatwg.org/):
4.5.6 send()方法
客户.发送([body = null])
发起请求.可选参数提供请求正文.
如果请求方法是GET或HEAD,则忽略该参数.
send(body)方法必须运行以下步骤:
如果未打开state,则抛出InvalidStateError异常.
如果设置了send()标志,则抛出InvalidStateError异常.
如果请求方法是GET或HEAD,则将body设置为null.
Postman github中的这个讨论也可以帮助你:https://github.com/postmanlabs/postman-app-support/issues/131.
如果要查询ElasticSearch服务器,可以使用POST请求.这是一个示例:
POST http://localhost:9200/myindex/mytype/_search?pretty=true
Content-Type: application/json
{
"query": {
"match": {
"somefield": "some value"
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望它对你有帮助,蒂埃里
| 归档时间: |
|
| 查看次数: |
16879 次 |
| 最近记录: |