2016-01-15 47 views
0

我有一個非常不尋常的問題,剛剛彈出。我正在編寫一個帶有ASP.NET Web API後端的Ionic應用程序。我攻克了飛行前CORS問題的早期,通過增加這個我WebApiConfig類的註冊方法:CORS飛行前失敗只有一個方法

config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 

當瀏覽每個頁面,並進行各種$ http.get電話,起飛前CORS是工作請客(以下爲Chrome開發者工具採取網絡流量)

Example 1

不過,我最近創建了的WebAPI一個額外的方法:

[Authorize] 
    [Route("api/GetJobType")] 
    public IHttpActionResult GetJobType(int? id) 
    { 
     var model = new JobsModel(); 
     return this.Ok(model.GetJobType(id.Value)); 
    } 

但飛行前OPTIONS請求返回404:

enter image description here

這是$ http.get代碼:

var url = ApiEndpoint.url + '/GetJobType/' + jobId; 
    $http.get(url).then(function(resp) { 
     alert(resp.data); 

    }, function(err) { 
     alert(err); 
    }); 

任何想法,爲什麼OPTIONS請求將失敗只有一個方法,而其餘的完美工作。

回答

2

它似乎沒有任何與飛行前請求有關,這是你的路線。您正在獲取404這意味着它無法找到請求的資源。將您的參數添加到路線。

[Authorize] 
[HttpGet, Route("api/GetJobType/{id}")] 
public IHttpActionResult GetJobType(int? id) 
{ 
    try 
    { 
    var model = new JobsModel(); 
    return Ok(model.GetJobType(id.Value)); 
    } 
    catch 
    { 
    return InternalServerError(); 
    } 
} 
+0

感謝那斯蒂芬,它似乎現在工作,這是超級怪異的,因爲我的其他HTTPGet方法,通過參數都不需要有參數反映在路由屬性中那樣。不管怎麼說,還是要謝謝你 :) –