Comment configurer le service Web .asmx Activation de Cross-Origin à l’aide de Asp.net

Mon code de service Web est

[WebMethod] public List GetMachineData_List(ssortingng prefix, int person_id) { using (var db = new TestDB()) { List list = db.Fetch("select id,name from machine_data_collection mc where mc.id=@0 and name like '%" + prefix + "%'", person_id); return list.ToList(); } } 

Mon appel jQuery Ajax est

  $("#textbx").autocomplete( { source: function (request, response) { $.ajax({ url: 'http://localhost:4787/ws/webservice.asmx/GetMachineData_List', data: { prefix: request.term.toSsortingng() ,person_id:1}, dataType: "json", type: "POST", contentType: "application/json; charset=utf-8", success: function (data) { var jsonArray; try { jsonArray = $.parseJSON(data.d); // using jQuery } catch (e) { jsonArray = data.d; // using jQuery } response($.map(jsonArray, function (item) { return { id: item.id, value: item.Name }; })); }, error: function (XMLHttpRequest, textStatus, errorThrown) { var msg = XMLHttpRequest.responseJSON.d; if (msg == undefined) { alert( "Something went wrong !!" + errorThrown); } else { alert( "Error"+ msg); } } }); }, minLength: 2, select: function (event, ui) { var idControl = this.dataset.bindcontrol; try { alert(ui.item.id); } catch (ex) { alert( "Oops .. Something happend unexpected !! .. Please redo "); } } } ); 

Et j’active le Cross-Origin dans le code web.config est

             

Une erreur s’est produite lors de la modification du texte dans la zone de texte. Error Meaasge from Ajax call est:

XMLHttpRequest ne peut pas charger http: // localhost: 4787 / ws / webservice.asmx / GetMachineData_List . La réponse à la demande de contrôle en amont ne réussit pas la vérification du contrôle d’access: aucun en-tête ‘Access-Control-Allow-Origin’ n’est présent sur la ressource demandée. L’origine ‘ http: // localhost: 21702 ‘ n’est donc pas autorisée. La réponse avait le code d’état HTTP 500.

essayez d’utiliser jsonp dans votre appel json.

 $("#textbx").autocomplete( { source: function (request, response) { $.ajax({ url: 'http://localhost:4787/ws/webservice.asmx/GetMachineData_List', data: { prefix: request.term.toSsortingng() ,person_id:1}, dataType: "jsonp", 

Ajoutez l’extrait de code ci-dessous dans le fichier Web.config :

          ............. ..............       **...(add additional add names and values when you need).......**    

Dans mon cas, l’URL de base de l’application consommateur de services http://localhost:4200 (Angular) est http://localhost:4200 .

Vous devez mentionner votre URL de base à cet endroit spécifique.