jQuery AJAX URL Rest路径参数

4
我有一个 REST 服务在 /users/{userId}/orders/{orderId}(请注意路径参数),我想从 JQuery 调用它。
我可以简单地将这些 id 连接起来,像这样:
$.get(
    'users/' + 1234 + '/orders/' + 9876,
    function (data) {
        //do something with the response
    }
);

但这似乎不是一个非常正确的做法(虽然它能完成工作)。
有没有更好的方法在JQuery AJAX调用的URL上传递这些路径参数?
*只是为了澄清,我的关注点更多地在于字符串的连接。我想知道是否有更好的构造URL的方法,而不需要连接字符串。也许字符串格式化会更好?

我认为你应该使用路径变量更改你的Rest服务。 - Alessandro
您能详细说明一下“使用路径变量更改 Rest 服务”的含义吗? - Cesar Pantoja
我的意思是你应该在URL中使用参数,比如yourservice?userid=xxx&orders=yyy。 - Alessandro
2
是的,但那不太符合RESTful的规范,有时您需要调用现有的服务,而无法控制路径或查询参数的使用。 - Cesar Pantoja
2个回答

7

我认为模板字面量是在这里操作的最简洁方式:

$.get(
    `users/${userId}/orders/${orderId}`,
    function (data) {
        //do something with the response
    }
);

0
你可以编写一个函数来发起这个请求:
function makeOrderRequest(userId, orderId, sucessCallback) {
    $.get('users/' + userId + '/orders/' + orderId, successCallback);
}

然后在需要的时候调用它:

makeOrderRequest(1234, 8796, function(data){
     //do stuff
});

谢谢,我的关注点更多地与字符串拼接有关。你在示例中仍然在url中连接字符串。我想知道是否有一种更好的方法来做到这一点,而不涉及这个。 - Cesar Pantoja
好的。我认为在这里使用串联是不错的选择,但你可以使用一个对象,比如{order:1234,user:8765},然后通过循环生成URL,避免手动串联。 - Neekobus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接