【问题标题】:How to send dot character as a parameter from angularjs $http如何从 angularjs $http 发送点字符作为参数
【发布时间】:2015-05-07 17:47:12
【问题描述】:

我正在尝试将.(点)作为字符串发送到 Nodejs 中的以下 aspi 调用。 我正在使用 Angularjs $http 对象。

我可以看到正在使用我在搜索框中输入的点 (.) 字符进行调用。

https://localhost:3003/posts/search/.

但是,当我通过谷歌开发者工具看到 ajax 调用时,它正在调用:

https://localhost:3003/posts/search/

如何传递点字符?

代码是:

返回

$http.get('https://localhost:3003/posts/search/.').then(getPostCompleted).catch(function (message) {
                handleException(message);
            });

我认为我不必对此进行 btoa 或 atob 操作?

谢谢 上午

【问题讨论】:

    标签: angularjs node.js


    【解决方案1】:

    你应该使用 get params 之类的东西:

    https://localhost:3003/posts/search?req=.
    

    并在您的代码中获取req 参数。我知道这不是您想要的路线,但我认为点是一个特殊字符,不能在路线中使用,因为它用于域

    【讨论】:

      【解决方案2】:

      如何传递点字符?

      URL 中的字符串必须是 url-encoded。原始 javascript 有一个 function 可以做到这一点,但 angular.js $http 服务有 special behavior 可以做到这一点。

      编辑:

      我可以看到正在使用我在搜索框中输入的点 (.) 字符进行调用。

      https://localhost:3003/posts/search/.

      但是,当我通过谷歌开发者工具看到 ajax 调用时,它正在调用:

      https://localhost:3003/posts/search/

      默认情况下,Chrome 必须在不带扩展名的情况下剥离点。一个正则表达式可能会在某处解析它。

      【讨论】:

        【解决方案3】:

        请参阅this 了解如何使用点。

        如果您想使用 GET,那么您可以将参数作为查询字符串传递,即

        $http.get('https://localhost:3003/posts/search?string=.')
        .then(getPostCompleted).catch(function (message) {
            handleException(message);
        });
        

        否则你可以使用 POST 并将参数添加到正文中

        $http.post('https://localhost:3003/posts/search', {string: '.'})
        .then(getPostCompleted).catch(function (message) {
            handleException(message);
        });
        

        【讨论】:

        • 它不会走得更远,因为我的路线将匹配错误的路线 - 我有一个 /posts/:category 另一个是 /posts/search/:term - 因此当我指定为?术语=。它将转到第一个,这不是解决方案。我喜欢帖子部分,尽管我想不要使用它,但考虑到帖子也是 XSS 攻击安全的,这不是一个坏主意。 +1
        猜你喜欢
        • 2018-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-26
        • 2017-03-19
        • 1970-01-01
        • 2011-06-30
        • 1970-01-01
        相关资源
        最近更新 更多