AngularJS-$ http请求特殊字符问题

时间:2019-05-22 09:01:57

标签: javascript angularjs api http url

我希望你很好。我正在尝试使用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 }
            });

1 个答案:

答案 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