2015-10-20 123 views
0

我對AngularJS很新,但由於某些原因,我必須使用它並創建小型網頁,才能夠向Web Api 2部分發送一些請求。我遇到了一個奇怪的錯誤。我的控制器位於ApplicationFrontEnd/MainView文件夾中,文件名爲「main.js」。代碼問題的一部分:

var request = { 
     method: 'POST', 
     url: 'api/login', 
     headers: { 
      'Authorization': 'Basic ' + encoded 
     } 
    } 
    $http(request) 
     .success(function (data, status, headers, config) { 
      // I`m supposed to have no problem 
     }) 
     .error(function (data, status, headers, config) { 
      //but for some reason i do have. 
     }); 

所以,在發送POST請求的點不會被髮送到'api/login',但'ApplicationFrontEnd/api/login',並沒有任何Authorization頭。 在Web Api項目的一部分,我有CORS打開等,但雖然我有錯誤的請求中的網址,我收到404錯誤(非常合乎邏輯)。有人可以向我解釋,我做錯了什麼,以及如何解決它?

+0

在這裏https://docs.angularjs.org/api/ng/service/$http你可以找到關於http標題的部分。你會發現在普通的身份驗證。 –

+0

@V_Maenolis thx,我看到了。你能說出關於請求變形的任何事嗎? – Overrided

回答

1

讓網址絕對通過添加領先/

url: '/api/login' 

將調用http://yourDomain.com/api/login

+0

THX!這個領先的'/'做了訣竅。絕對網址(至少對我而言)並不明顯。 – Overrided

+0

做足夠的網絡工作,它會很快下沉 – charlietfl

+0

我告訴我很新的Angular。在.net裏,Uri類有一些屬性,我可以隨時檢查我的Uri是否是絕對的。但在那個JS中 - 沒有那樣的東西,所以這並不明顯) – Overrided