2016-12-30 41 views
2

我想在url中發送3個參數以獲取方法。如何使用http get方法(Angular js)發送查詢參數(順序)

getUser: function(auser) { 
          var config = { 
          params: { 
          UserName: '[email protected]', 
          CorrelationId: '', 
          OrganizationId: '428' 
        } 
       } 

        //API Call 
      var promise = $http.get(API_URL, config, REQUEST_HEADER).then(
      function(aGetUserResponse) { // return} 

但我得到404,因爲我的參數不正確的順序發送。爲什麼我的訂單正在改變?任何解決方案?

http://127.0.0.0:8000/client_01/users?CorrelationId=&OrganizationId=428&[email protected] 
Failed to load resource: the server responded with a status of 404 (Not Found) 
+0

如果您的API端點正確完成,順序應該沒關係。你可以發佈「/ client_01/users」端點的服務器端代碼嗎? –

+0

訂單沒有也沒關係。如果你依賴查詢字符串參數的順序,那麼其他的東西是錯誤的。 JavaScript中的對象沒有訂單。這就是說訂單不能保證。你在這裏看到的是一些瀏覽器實現的字母數字順序。 – TheSharpieOne

+0

如果您的端點依賴於參數順序,我會說這很糟糕。現在保證bowser將以任何順序發送它們。 Like @big_water說可能很高興看到你的後端 – dstarh

回答

1

事實是,您的服務器端代碼應該以查詢字符串中的查詢參數順序無關緊要的方式進行設置。 Here對此事是一個很好的解釋。

如果您有權訪問解析參數的服務器端代碼,則應該在其中進行更改。如果您與我們分享該代碼,我們可以提供幫助。這對你的角碼來說確實不成問題。如果你沒有訪問代碼,我會建議手動格式化查詢字符串,而不是讓Angulars $ http服務爲你做。如:

getUser: 
function(auser) { 
    var config = { 
     params: { 
     } 
    } 
} 

function queryUrl(username, corrId, orgId){ 
    return API_URL + "?UserName=" + username 
      + "&CorrelationId=" + corrId 
      + "&OrganizationId=" + orgId; 
} 

//API Call 
var promise = $http.get(queryUrl(), config, REQUEST_HEADER).then(
function(aGetUserResponse) { // return} 
+0

我沒有訪問權限,如何手動格式化查詢字符串? –

+0

@ M.Khan我已經編輯過展示一個如何手動完成的例子。 –

相關問題