将任何URL作为查询参数发送到API

时间:2017-07-13 18:22:43

标签: javascript rest api jersey

所以,最近我试图向一个公开暴露的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,但是我们可以通过查询参数发送它。

3 个答案:

答案 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应该是类似的库。