以 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 调用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JSON 数组作为 URL 中的参数传递

如何在 java Servlet 过滤器中更改传入 URL 并将请求重定向到新 URL [重复]

从 jquery ajax statuscode 401 获取位置重定向 url

如何为未经授权的 AJAX 调用而不是登录页面返回 JSON 响应作为 AJAX 响应?

从 url 中删除/重定向 index.php 以防止重复的 url

重定向到`Java`中的get方法时如何从url中删除参数[重复]