我希望你很好。我正在尝试使用AngularJS $ http消耗我的同事编写的API。它是PATCH方法类型。其中一个参数在URL(SomeMethod / User / FHD&TE)中传递,另一个在主体(JSON)中传递。内文中的一个显然很不错,但由于有时会出现一些特殊字符,因此在URL中传递的是一个问题。 API响应代码为400,并显示“从客户端检测到潜在危险的Request.Path值”。我尝试使用转义和编码JS函数,但是它们都不起作用。而且,在我用来发出请求的angular.http中有一个选项params。据我所知,它负责编码参数(解决了特殊字符问题),但是我不能使用它,因为URL与API期望的URL不同。它应该是“ SomeMethod / User?FHDTE%”而不是“ SomeMethod / User / FHD&TE”,并且显然会以404答复。您现在是否可以在客户端解决此问题,如果可以,我该怎么办?还是需要更新后端?
样品请求:
return $http({
method: 'PATCH',
url: ...SomeMethod/User/firstURLParameter,
headers: { 'Content-Type': 'application/json' },
data: { "secondBodyParameter": true }
});
答案 0 :(得分:0)
如果服务器端是用Node.js编写的,请尝试对接收到的参数使用unescape函数。
var str = Need%20tips%3F%20Visit%20W3Schools%21;
var str_1 = unescape(str)
str1结果将是“需要技巧?请访问W3Schools!”
w3schools的示例https://www.w3schools.com/jsref/jsref_unescape.asp