Я работаю над asp.net web api. Я пытаюсь сделать вызов для контроллера (Security), используя jquery ajax calls. У меня есть метод в мой контроллер с 3-мя параметрами, такими как,Как передать параметры методу в контроллере через jquery ajax calls
public WebRequest GetRequest(string method,string type,string endpoint)
{
RSACryptoServiceProvider rsa=new RSACryptoServiceProvider();
var request = WebRequest.Create(endpoint);
request.Method = method;
request.ContentType = type;
UnicodeEncoding enc = new UnicodeEncoding();
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
request.Headers.Add("Authorization-Token", RSAClass.StringConverter(RSAClass.RSAEncrypt(enc.GetBytes("User1"), rsa.ExportParameters(false), false)));
return request;
}
и я делаю JQuery Ajax вызова, как,
CreateRequest("GET", "application/json;charset=utf-8", "http://localhost:49847/api/Security", function (request) { alert("Hello"); });
function CreateRequest(method, type, endpoint, callback) {
$.ajax({
url: "api/Security",
data: { method: method, type: type, endpoint: endpoint },
type: "GET",
contentType: "application/json;charset=utf-8",
statusCode: {
200: function (request) {
callback(request);
}
}
});
, а также у меня есть класс customfilterattribute для подтверждения токен авторизации, как,
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
string token;
try
{
token = actionContext.Request.Headers.GetValues("Authorization-Token").First();
}
catch
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest) { Content = new StringContent("missing authorization token") };
return;
}
try
{
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
UnicodeEncoding enc = new UnicodeEncoding();
AuthUsersRepository.GetAllUsers().First(x => x.Name ==enc.GetString(RSAClass.RSADecrypt(RSAClass.ByteConverter(token), RSA.ExportParameters(true), false)));
base.OnActionExecuting(actionContext);
}
catch
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden) { Content = new StringContent("Unauthorized User") };
return;
}
}
, когда iam делает первый запрос, запрашивая у меня токен авторизации. а также отображение нулевых значений в трех параметрах (метод, тип, конечная точка). веди меня.
GET не может иметь содержание. – Aliostad
@Aliostad вы можете передавать данные в GET или POST. В документации указано, что данные будут добавлены в строку запроса для GET. http://api.jquery.com/jQuery.ajax/ – Fenton
Спасибо. Можете ли вы обновить свой пост, чтобы я мог изменить свой -1 на +1? – Aliostad