2017-03-15 95 views
0

我在/ users/{userId}/orders/{orderId}(請注意路徑參數)上有一個Rest服務,我想從JQuery調用它。JQuery AJAX URL Rest路徑參數

我能做到這一點簡單地串聯的ID,像這樣:

$.get(
    'users/' + 1234 + '/orders/' + 9876, 
    function (data) { 
     //do something with the response 
    } 
); 

但這似乎喜歡做的一個非常正確的方式不(雖然它的工作)。

有沒有更好的方式在JQuery AJAX調用的URL上傳遞這些路徑參數?

*只是爲了澄清,我關心的更多是串聯字符串。我想知道是否有更好的方法來構造url而不用連接字符串。也許字符串格式會更好?

+0

我想你應該改變你的Rest服務使用路徑變量 – Alessandro

+0

您能否詳細說明您的意思是「使用路徑變量更改您的Rest服務」? –

+0

我的意思是你應該在URL中使用參數,比如你的服務?userid = xxx&orders = yyy – Alessandro

回答

0

我覺得Template literals是在這裏進行最巧妙的方法:

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

,您可以撥打功能,使這個請求:

function makeOrderRequest(userId, orderId, sucessCallback) { 
    $.get('users/' + userId + '/orders/' + orderId, successCallback); 
} 

然後調用它時,你需要:

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

謝謝,我的關注更多的是與字符串連接有關。你的例子中你仍然在連接字符串中的url。我想知道是否有更好的方式來做到這一點,而不涉及這一點。 –

+0

好的。我認爲串聯在這裏很好,但你可以使用一個對象{order:1234,user:8765},然後用循環生成URL以避免手動連接。 – Neekobus