我正在通过我的 javascript 代码向 Web API 发送请求,如下所示:
http://localhost:49358/api/myClasses/GetMyData/first%20second/third%20fourth%2Ffifth
哪里
是我的 Controller 方法,我向其传递两个参数第一个第二
和第三个第四/第五
空格会被 %20
自动转义,而 /
我会使用 %2F
转义
问题是上面的 url 调用返回错误 404。同时,如果我将 第三个第四/第五
替换为任何不包含正斜杠的有效值,则一切正常。
有人能给我指出正确的方向吗?
我的 Controller 代码如下:
(function () {
angular.module("myApp").controller("MyController", ["$scope", "$state", "$http", MyFunction]);
function MyFunction($scope, $state, $http) {
$scope.MyClass1=[];
$http.get('http://localhost:49358/api/myClasses/GetMyData/' + $scope.$parent.param1 + '/' + encodeURIComponent($scope.$parent.param2))
.then(function (result) {
$scope.MyClass1 = result.data;
});
};
})();
最佳答案
事实证明这不是客户端问题,因为我对斜杠进行了编码。真正的问题是服务器无法处理 url 参数中的斜杠。我决定用下划线替换斜杠,并修改我的 Web API,稍后用正斜杠替换所有下划线。也可以使用任何其他合适的字符
关于javascript - 将参数传递给 url 时转义 JavaScript 中的正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35558829/