Je sais qu'il existe des tonnes de réponses à ce sujet, mais je n'ai pas trouvé de solution à mon problème . J'ai une API Web ASP.NET MVC qui ressemble à ceci:
[HttpGet]
public IList<Country> GetCountryList(List<long> idList)
Et j'ai essayé de l'appeler comme ça:
$.ajax({
dataType: "json",
data: JSON.stringify({idList: listOfIds}),
type: "GET",
url: "api/v1/util/CountryList",
success: function (result) {
alert(result);
}
});
L'URL ressemble alors à ceci:
https://localhost/supertext/api/v1/util/CountryList?{%22idList%22:[46,14,62,83,120]}
Alternative:
$.ajax({
dataType: "json",
data: {
idList: JSON.stringify(listOfIds),
}
type: "GET",
url: "api/v1/util/CountryList",
success: function (result) {
alert(result);
}
});
URL:
https://localhost/supertext/api/v1/util/CountryList?idList=%5B46%2C14%2C62%2C83%2C120%5D
Les deux méthodes ne fonctionnent pas.
Dois-je vraiment l'envoyer et le recevoir sous forme de chaîne ou utiliser POST?
Non, n'essayez pas d'envoyer JSON dans une requête GET. Utilisez JSON avec d'autres verbes ayant un corps, tels que POST et PUT.
Faites-le de manière standard, en décorant votre paramètre d'action avec l'attribut [FromUri]
:
public IList<Country> GetCountryList([FromUri] List<long> idList)
{
...
}
puis déclenchez simplement la requête AJAX:
$.ajax({
url: 'api/v1/util/CountryList',
type: 'GET',
data: { idList: [1, 2, 3] },
traditional: true,
success: function (result) {
console.log(JSON.stringify(result));
}
});
Autres lectures recommandées sur le fonctionnement de la liaison de modèle dans l’API Web:
http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1
** Voici deux paramètres Enum et objSearch **
var Enum = "ABCD";
var objSearch = [
{"Name":"Navjot Angra","Age":23},
{"Name":"Nav","Age":22}];
// c'est la méthode ajax
$ .ajax ({
type: "GET",
var GatwayUrl ='http//2937/' (//Your url)
url: GatwayUrl + 'api/Certificate/GetDetail/?Enum=' + Enum +'+&objSearch='+ JSON.stringify(objSearch),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if (result) {
alert("Your Code");
} }
});
// cette partie est une partie web api
[HttpGet]
public IHttpActionResult Fetch ([FromUri] chaîne Enum, [FromUri] chaîne objSearch) {
IHttpActionResult action = null; Action de retour;
}