所以,最近我试图向一个公开暴露的REST API发布一个帖子(javascript ajax)请求,并将URL作为查询参数。让我们说端点是example.com/api/urls
,我试图向这个端点发出一个帖子请求,URL如下面的查询参数
example.com/api/urls/url=http://xyz.abc?a=sdffd&jkder
现在,我为查询参数(网址)获取的资源值为http://xyz.abc?a=sdffd
,我的要求是获取完整的网址,即http://xyz.abc?a=sdffd&jkder
。
更新: 总有一个选项可以通过请求正文发送URL,但是我们可以通过查询参数发送它。
答案 0 :(得分:0)
您需要对URL中的&符号进行百分比编码。
代码为%26
答案 1 :(得分:0)
你好,你可以为你的参数建立一个对象吗?像这样?
var requestData = {
url : 'http://xyz.abc?a=sdffd&jkder'
};
$.ajax({
url: 'example.com/api/urls',
type: 'POST',
data: JSON.stringify(requestData),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
error: function (xhr) {
// do stuff on error
},
success: function (result) {
// do stuff on success
},
async: true,
processData: false
});
答案 2 :(得分:0)
您需要对url字符串进行URL编码,在发送到服务器之前对URL编码任何请求参数都是一种很好的做法,以避免解码问题。
URLEncoder.encode()存在于Java中。 Javascript应该是类似的库。