我开始在一个使用Logic Apps ( Azure )的项目中使用Azure Maps API。突然,HTTP操作停止了,我得到了一个400 BadRequest的错误。
“错误”:{“代码”:"400 BadRequest",“消息”:“错误请求:一个或多个参数指定错误或互斥。”
但是,当我使用Postman或我的浏览器调用相同的API时,它工作得很好。
接口:多伦多多伦多https://atlas.microsoft.com/search/fuzzy/json?api-version=1.0&subscription-key=xxxxxxxxxxxxxxxxxxxxxxxxxxx&query=2 5 Donlands 4多伦多&countrySet=Ca&maxFuzzyLevel=2&limit=1
正如我所提到的,这是有效的,并且突然在逻辑应用程序上开始失败,而没有进行任何更改。
发布于 2020-05-18 16:33:20
我也有同样的问题。我使用address rest api从邮政编码中检索城市。
示例:
和您一样,如果我使用查询客户端,我有一个400错误的请求,消息是:{ "error":{ "code":"400 BadRequest"," message ":"Bad request:一个或多个参数被错误地指定或者是互斥的。“}}
请注意,该查询对于google chrome是可以的,但是使用Brave、Edge (Chrome)和Firefox返回400个错误请求。另请注意,示例web sdk也存在同样的问题,并且不会更新。
目前,我不知道问题出在哪里。
编辑:经过一些调查,我很确定这是微软的问题。因此,我找到了一种解决方法。如果我尝试使用Firefox查询,默认情况下我有一个400和200个chrome。我比较了头文件,问题出在accept语言上。
默认情况下,在Chrome上,我有: Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,火狐上的en;q=0.7 (勇敢,边缘也可能),我有: Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
请注意fr-FR和fr之间的反转。如果我将Firefox上的接受语言从fr,fr-FR更改为FR- fr,fr。起作用了。
如果我将接受语言设置为"fr“,我仍然有一个400。使用"Fr-fr“。所以在一些测试之后,我的结论是atlas在两个字母的头接受语言上有问题。
因此,在我的TS/JS代码中,只需添加带有4个字母的accept-language即可再次工作。
xhr.open('GET', url, true);
xhr.setRequestHeader("Accept-Language", this.acceptLanguage);
xhr.send();我的观点是这是一个服务器/地图集的问题,我不能想象这种代码从微软^^
https://stackoverflow.com/questions/61829909
复制相似问题