作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
本质上,我只是在 Pyramid 内部构建一个 API 重定向路由来处理跨域 AJAX 请求,而不使用 JSONP。
我添加了一条路线,如下所示:
config.add_route("api","/api/{url:.*}")
我想用它来捕获 URL,如下所示:
http://domain.com/api/http://location.of/other/api
但是,当从请求 matchdict 中获取捕获的 URL 后缀时,我得到以下结果:
http:/location.of/other/api
我猜测在 URL 处理/匹配过程中进行了一些转义?如何避免这种情况,并获得带有两个正斜杠的所需 URL?
即使我将 URL 作为 GET 参数传递,问题仍然存在。也许这与 Pyramid 的多重字典的工作方式有关?
最佳答案
这是任何基于 WSGI 的应用程序的基本限制。在将 URL 传递到 WSGI 应用程序之前,会对 URL 进行 url 解码并压缩斜杠。如果你想保留斜杠,你需要对它们进行两次编码。 AFAIK 使用查询字符串无法解决此问题。
我想我应该指出原始 URL 是可用的,但你必须从中解析出你自己关心的部分。它位于 request.url
中。 request.path_info
是 Pyramid 和大多数 WSGI 应用程序用来分派(dispatch) URL 的内容,因为它仅包含与应用程序安装位置相关的子路径。
关于python - Pyramid 替换 URL Matchdict 中的双正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939108/
本质上,我只是在 Pyramid 内部构建一个 API 重定向路由来处理跨域 AJAX 请求,而不使用 JSONP。 我添加了一条路线,如下所示: config.add_route("api","/a
我是一名优秀的程序员,十分优秀!