javascript - 将参数传递给 url 时转义 JavaScript 中的正斜杠

标签 javascript angularjs

我正在通过我的 javascript 代码向 Web API 发送请求,如下所示:

http://localhost:49358/api/myClasses/GetMyData/first%20second/third%20fourth%2Ffifth

哪里

http://localhost:49358/api/myClasses/GetMyData/

是我的 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/

相关文章:

javascript - 使用 DataView 读取 ArrayBuffer 中的 Int64

javascript - Angular Accordion - 多个打开的组

javascript - 传入指令而不将其添加到范围中

javascript - 数组长度不正确

javascript - Dojo 与具有 Backbone 或 JavascriptMVC 的 Jquery 有何不同?

javascript - 使用按钮垂直滚动 div

javascript - 无法成功根据位置参数显示 bing map 并在标识的位置添加图钉

javascript - 使用 mern.io 脚手架工具 - .need 方法是什么?

javascript - AngularJS 否则函数将我重定向到错误的路线

javascript - 两个 Angular js 绑定(bind)之间的区别?