Sorunumu, 'Erişim Denetimi-İzin Ver-Menşe' atamadan .Net Web API'sı ile düzeltmek için bu çözümü takip ettim. Ben çalıştırmak ve ondan başka bir yerel uygulama istekleri olduğundaEnableCors on .Net Web Api, yerel değil, sunucu üzerinde çalışır. 'Erişim-Denetim-İzin-Kökeni Yok' atar
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
Bu mükemmel benim yerel makinede çalışır. Ama iki uygulamayı iki farklı makineye bastığımda, 'Erişim-Kontrol-İzin-Menşe' seçeneğini tekrar atar. Ayrıca sadece Web Api'yi iterek ve diğer uygulamayı yerelden çalıştırmayı denedim ve aynı şeyi yapıyordum. Açıkça "origins" üzerindeki değeri değiştiriyor. İşte bu benim isteğidir
public class TestController : ApiController
{
[EnableCors(origins: "http://localhost:9292", headers: "*", methods: "*")]
[System.Web.Http.HttpGet]
public string GetData(string database, string tableName, string query)
{
try{
var data = List<MyObjects>();
// fill my data;
return JsonConvert.SerializeObject(data);
}catch(Exception ex){
return JsonConvert.SerializeObject(ex);
}
}
}
denetleyici benim kod: benim webapiconfig yanı bu kurulum var
$scope.testNewApi = function(){
$http({
method: 'GET',
url: 'http://notlocalhost/ApiTest/api/Test/GetData?database=test&tableName=test2&query=test3'
}).success(function (data, result) {
console.log(JSON.stringify(data))
}).error(function(err, result){
console.log('error ' + err)
});
}
(açısal yazılmış) Denedim "*" ve Belirtmemeyi çalıştı köken de.
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
EnableCrossSiteRequests(config);
}
private static void EnableCrossSiteRequests(HttpConfiguration config)
{
var cors = new EnableCorsAttribute(
origins: "*",
headers: "*",
methods: "*");
config.EnableCors(cors);
}
}
Evet aslında bunu zaten yaptım. Bununla uğraşmaya çalıştım ama hala bueno yok. – gdubs