javascript - 传递/传入导致异常的 URL 字符串

标签 javascript html angularjs

当我从下拉列表中选择的值中有 / 时出现异常。当用户从下拉列表中选择 Prod1/TOXS 并单击提交按钮时,它会调用 myservice.fetchData 并在其中抛出异常,因为它正在将 URL 构造为

applnURL+'/prodData/'+ Prod1/TOXS + '/productDetails.form'

演示:https://plnkr.co/edit/HOaICuMKegzn9Or489cX?p=preview

html代码:

  <select ng-model="selectedProd" ng-options="x for x in prodNames">
   </select>

js代码:

 angular.module('checkboxExample', [])
    .controller('ExampleController', ['$scope', function($scope) { 
      $scope.prodNames = ['Prod1/TOXS', 'Prod2/XYA', 'BLACK','prod3as','Prod23sd/88X'];
      $scope.submitForm = function(){
        alert("submi form" + $scope.selectedProd);
        //service call
        /*  MyService.fetchData($scope.selectedProd){
          //logic
        }*/
      }
  }]);

  //service call
           /*     myservice.fetchData = function(selectedValue){
                    var deferred = $q.defer();
                    var randomh=Math.random();
                    var urlStr = applnURL+'/prodData/'+ selectedValue + '/productDetails.form?';
                    $http.get(repUrl)
                        .then(...
                        ...*/

有什么方法可以在 URL 字符串中传递 '/'

最佳答案

如果 Prod1/TOXS 是一个字符串的值,您必须将它放在 "" 中以防止 JavaScript 将它们解释为变量名。

此外,使用 encodeURIComponent()

对在 URL 中发送的字符串进行编码是明智的

var applnURL = "";
console.log(applnURL+'/prodData/'+ encodeURIComponent("Prod1/TOXS") + '/productDetails.form');

关于javascript - 传递/传入导致异常的 URL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387680/

相关文章:

javascript - 我需要将此 Json Facebook 页面转换为数组以供选择

javascript - 基于调查 ID 的 Limesurvey 条件

javascript - 当键盘像 whatsapp 一样弹出时滚动整个 html/body

html - 将底部边框放在页面右上角 Logo 下方的 CSS 问题

javascript - Angular2测试异步Http.MockBackend.connections promise 不会产生

javascript - 动态更新 Angular2 指令中自定义属性的值

php - 在 PHP 中使用 DOMDocument 包裹 h3 标签集之间的所有 HTML 标签

angularjs - Jasmine spyOn 函数不是对象的方法

javascript - Angular 模块 md-data-table 服务

javascript - 构建 Node.js 和 AngularJS 应用程序