以 url 作为参数的 JSON 调用 [重复]
Posted
技术标签:
【中文标题】以 url 作为参数的 JSON 调用 [重复]【英文标题】:JSON call with url as parameter [duplicate] 【发布时间】:2016-09-21 16:14:06 【问题描述】:只要主页变量中没有//,它就可以正常工作
$.getJSON(url + "/addPerson/'" + name + "'/'" + homepage +"'", function(data)console.log(data); );
我将如何正确准备一个 url var 以将其作为 JSON 调用传递?
【问题讨论】:
首页变量的可能值是什么?? 【参考方案1】:在尝试通过 http 访问 api 时,使用 encodeURI
对 uri 进行编码并为 api 获取正确的值
【讨论】:
你能举个例子吗?$.getJSON(encodeURI(url + "/addPerson/'" + name + "'/'" + homepage +"'"), function(data)console.log(data); );
@user3732793 只有名称和主页应该被编码使用$.getJSON(url + "/addPerson/" + encodeURIComponent(name) + "/" + encodeURIComponent(homepage)), ...
谢谢,但这并没有到达 Person 后面的 api。目前已简化为“../addPersonen/param1/param2”作为 url【参考方案2】:
如果homepage
是一个带有http://
的URL,你需要对其进行编码。
你应该写:
$.getJSON(url + "/addPerson/" + name + "/" + encodeURIComponent(homepage), function(data)console.log(data); );
如果是这种情况,您不应该在 urls 中传递 urls。使用 POST 有效负载或多格式数据。
此外,如果请求的目的是在数据库中添加记录,请使用 POST 而不是 GET。
$.post(url+'/addPerson', name: name, homepage: homepage, function(data)console.log(data););
【讨论】:
你需要使用encodeURIComponent
,encodeURI不要编码斜线encodeURI('http://example.com')
返回http://example.com
非常感谢。确实有效。谢谢大家!
实际上只有 getJSON 对我有用
@user3732793 好吧,您需要对 API 进行适当的更改,以使 POST 请求正常工作,我强烈建议您这样做。 GET 请求用于获取数据。 POST 请求用于 POSTING 数据。
是的,有道理,我已将 tha api 更改为接受 post 请求。但是,您的第二个代码示例无法使用它,因此使用了 getJSON 示例中的 uri 组合...以上是关于以 url 作为参数的 JSON 调用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 java Servlet 过滤器中更改传入 URL 并将请求重定向到新 URL [重复]
从 jquery ajax statuscode 401 获取位置重定向 url
如何为未经授权的 AJAX 调用而不是登录页面返回 JSON 响应作为 AJAX 响应?