我的网站上有一个搜索表单如果有人可以搜索一个URL以http://开头是这样的:你如何添加URL作为查询参数值
https://www.google.com
然后应进行编码和附加为查询参数值是这样的:
localhost:4000/api/https%3A%2F%2Fwww.google.com
当我运行它(如上图)本地,它的工作原理,但当部署(如下图):
https://api.mysite.com/search/api/https%3A%2F%2Fwww.google.com%2F
=>返回404
如果我输入:
http://localhost:4000/api/https://www.google.com
我得到这个错误:
Phoenix.Router.NoRouteError at GET /api/v1/https://www.google.com
no route found for GET /api/v1/https:/www.google.com (ExternalPing.Router)
我不知道,如果这些都有关。追加url作为查询参数值的正确方法是什么?
我已经试过编码,URI.encode和URI.encode_www_form但他们并没有解决这个
我认为这里的答案会为你工作,即使他们'不使用路由(查看内置函数encodeURIComponent(str)和encodeURI(str)。):http://stackoverflow.com/questions/332872/encode-url-in-javascript –
你确定'localhost :4000/api/https%3A%2F%2Fwww.google.com'不起作用?它应该工作。此外,您可以使用'URI.encode_www_form'生成该文件:'“http:// localhost:4000 /”<> URI.encode_www_form(“https://www.google.com”)#=> “http:/ /localhost:4000/https%3A%2F%2Fwww.google.com“'。 – Dogbert
localhost:4000/api/https%3A%2F%2Fwww.google.com确实能够正常工作,但它无法正常工作,例如: https://api.mysite.com/search/api/https %3A%2F%2Fwww.google.com%2F – matcha