Ahoy Coder的朋友。WEB API:我顯然不能啓用CORS(?)
在這個問題之後Angular 2 + web api在我看來,我可能必須在我的前端啓用CORS才能訪問我的後端web api。
然而,即使我嘗試了這些步驟http://www.infragistics.com/community/blogs/dhananjay_kumar/archive/2015/08/31/how-to-enable-cors-in-the-asp-net-web-api.aspx以及這些https://enable-cors.org/server_aspnet.html,顯然什麼都沒有改變:當我試圖達到http://localhost:58825/api/character與郵差,我收到預期的字符列表中,但沒有CORS頭(允許來源等等)的答案。 至於前端,您可能會在鏈接問題中看到角度甚至找不到該API。
這裏是web.config中的相關樣本:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
var cors = new EnableCorsAttribute("http://localhost:3000", "*", "*");
config.EnableCors(cors);
除了控制器:
public class CharacterController : ApiController
{
private readonly CharacterRepository repo = new CharacterRepository();
JavaScriptSerializer jsonConverter = new JavaScriptSerializer();
[EnableCors(origins:"http://localhost:3000", headers:"*", methods:"*")]
// GET: api/Character
public IEnumerable<string> GetAll()
{
List<Character> myCharacs = repo.Get().ToList();
List<String> myJsonCharacs = new List<string>();
foreach (var charac in myCharacs)
{
var cur = jsonConverter.Serialize(charac);
myJsonCharacs.Add(cur);
}
return myJsonCharacs;
//return myCharacs;
}
顯然,我添加了NuGet包Microsoft.AspNet.WebApi.Cors(5.2 0.2)。
我試着清理解決方案,重建,重新啓動VS ...我已經看過在這裏問的「類似問題」,但我甚至沒有「無標題」異常,我的請求似乎沒有提供關於CORS的af * ck。
我的前端應用程序是在本地主機:3000,我的API是在localhost:58225(我通過Visual Studio中啓動它,如果這個改變任何東西)
有誰知道我在慘敗失敗? (除了生活,那不是,我已經習慣了有問題)
編輯:Asp.Net WebApi2 Enable CORS not working with AspNet.WebApi.Cors 5.2.3
重新編輯的可能doublon:我不知道這是否是一個真正的doublon,但我設法解決我的問題,通過增加
add name="ExtensionlessUrlHandler-Integrated-4.0" path="*."
verb="GET,HEAD,POST,PUT,DELETE"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0"/
我的webconfig文件,如在原崗位描述,我現在看到郵遞員頭。
這是一個web api項目,沒有startup.cs文件。 – DoctorPrisme
然後將其添加到您的API運行之前執行代碼的其中一個文件應該可以工作。這樣的文件是'Global.asax'。此外,如果您使用「Microsoft Identity」進行身份驗證,則在「WebApi」項目中有一個'Startup.cs'文件。 – StefanL19
那麼,我不使用微軟認證,並說問題我在WebApiConfig做了類似的步驟。 我不明白爲什麼在webconfig中添加頭文件的技巧,並在其他地方添加它們是不夠的:/ – DoctorPrisme