如何使用RESTful URI在javascript中发出Get请求?

如何使用RESTful URI在javascript中发出Get请求?,javascript,spring,rest,get,request,Javascript,Spring,Rest,Get,Request,因此,当前,当我的webapp发出get请求时,uri如下所示: 用户?usderId=123 我想要的是 用户/123 我该怎么做 在谷歌上搜索如何在javascript中发出get请求,当我需要后者时,会得到前者的URI 我想要后一种格式的原因是因为我在Spring中的requestMapping看起来像 @RequestMapping(value=“/users/{userId}”,method=RequestMethod.GET) 编辑: 因此,我在回复中尝试了该方法,似乎我的java

因此,当前,当我的webapp发出get请求时,uri如下所示:

用户?usderId=123

我想要的是

用户/123

我该怎么做

在谷歌上搜索如何在javascript中发出get请求,当我需要后者时,会得到前者的URI

我想要后一种格式的原因是因为我在Spring中的requestMapping看起来像

@RequestMapping(value=“/users/{userId}”,method=RequestMethod.GET)


编辑:

因此,我在回复中尝试了该方法,似乎我的javascript函数从未被调用过

<form id="idForm" class="form-inline" role="form" action="/users">
                <div class="form-group">
                    <div class="input-group inline-input-group">
                        <div class="input-group-btn">
                            <button type="button" class="btn btn-default dropdown-toggle fixedWidth225" data-toggle="dropdown">User Id<span class="caret"></span></button>
                            <ul class="dropdown-menu">
                                <li><a href="#">aaa ID</a></li>
                                <li><a href="#">bbb ID</a></li>
                                <li><a href="#">ccc ID</a></li>
                                <li><a href="#">ddd ID</a></li>
                            </ul>
                        </div>
                        <label class="sr-only" for="EntityId">Entity Id</label> 
                        <input type="text" class="form-control fixedWidth225" name="userId">
                    </div>
                </div>
                <button type="submit" class="btn btn-default">Submit</button>
            </form>

            <div id="displayDiv">
            </div>
为什么没有调用idForm submit的javascript函数

---------------------------这条线正上方的部分是数字----------------------

编辑:

我的问题的底线是:

带有submit按钮的HTML表单可以发出get请求,并为表单指定“操作”,为输入文本指定“名称”。我只想能够将这个get请求从users?userID=123生成的URI格式化为users/123

必须有一种方法可以简单地更改URI的格式,不是吗?

引用


这可能是因为语法错误:
*/
,并且因为HTML DOM不是jQuery,所以没有
form.submit(callback)
.attr()
.val()
等方法。。。您应该使用jQuery,或者阅读HTMLDOM手册。

您必须使用表单元素形成url,并简单地感谢您的响应。我尝试过这个方法,但我的javascript方法似乎从未被调用过。你能看看我编辑的帖子吗?你说得对。我修复了Dom和jQuery方法问题。现在,当我提交时,它使用我想要的URI的正确格式发出Get请求。但是,现在页面无法加载。在此之前,当get请求获取页面时,它将加载从服务器接收的新页面。但是,现在get方法成功了,但它不会加载它收到的页面。你知道为什么吗?你没有对
httpGet(url)返回的响应做任何事情。您应该使用asnyc XHR而不是sync,如果您使用jQuery,则使用,而不是手动实例化
XMLHttpRequest
。是否无法使用我想要的URI格式但使用原始进程发出get请求?我所说的原始过程是指,最初我的webapp会通过实际更改页面的URL并加载到新页面来发出get请求。但是,现在,它在后台发出get请求,而不更改页面的URL。操纵历史记录是唯一的方法吗?比如,最初使用非常简单的代码,带有submit按钮的HTML表单将发出一个get请求,表单使用正确的“action”,输入文本使用正确的“name”。我只是想要一种简单地更改get请求生成的URI格式的方法。
$(document).ready(function() {
    document.getElementbyID("idForm").submit(function(event) {
        event.preventDefault();
        var url = document.getElementbyID("idForm").attr( "action") + "/" + document.getElementbyID("userId").val(); 
        httpGet(url);
    });
  });
  */

function httpGet(restURL)
{
    var xmlHttp = null;

    // Assuming its a text field
    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", restURL, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}
function httpGet(restURL)
{
    var xmlHttp = null;
    restURL=restURL+"/"+document.getElementbyID("usderId").val(); 

    // Assuming its a text field
    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}