我正在從angularJs發佈到web api的請求。但每次我得到這個錯誤沒有'訪問控制 - 允許來源'標題出現在所請求的資源在web api
XMLHttpRequest cannot load http://localhost:45525/api/account/register. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:45725' is therefore not allowed access. The response had HTTP status code 500.
我下面這個tutorial
來解決這個問題,我也安裝
Install-Package Microsoft.AspNet.WebApi.Cors
然後我說
config.EnableCors();
裏面WebApiConfig
註冊方法。
並且還我加入
[RoutePrefix("api/Account")]
public class AccountController : ApiController
{
private AuthRepository _repo = null;
public AccountController()
{
_repo = new AuthRepository();
}
// POST api/Account/Register
[EnableCors("*", "*", "PUT, POST")]
[AllowAnonymous]
[Route("Register")]
[HttpPost]
public async Task<IHttpActionResult> Register(UserModel userModel)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
IdentityResult result = await _repo.RegisterUser(userModel);
return Ok();
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
_repo.Dispose();
}
base.Dispose(disposing);
}
}
在帳戶控制器。但我仍然遇到同樣的問題。
AngularCode
var _saveRegistration = function (registration) {
var serviceBase = 'http://localhost:45525/';
_logOut();
return $http.post(serviceBase + 'api/account/register', registration)
.then(function (response) {
return response;
});
};
是你確定POST正在執行,而不是GET? –
從你說過的話,CORS應該啓用。你可以顯示代碼'AcccountController'。 –
嘗試'[EnableCors(「*」,「*」,「PUT,POST」)]',即刪除方法之間的空間。 –