ciao a tutti sono nuovo del forum, ho fatto una ricerca tra le varie discussioni aperte e non ho trovato nulla che potesse aiutarmi. ho anche eseguito delle ricerche su internet ma non riesco a risolvere il problema, che penso sia abbastanza banale.
passo subito ad illustrarvi la mia situazione.
ho un dominio su aruba ed ho scritto un web service in C# in formato .asmx, se mi collego all'indirizzo www.miodominio.it/mioWebService.asmx il servizio mi ritorna correttamente la pagina con i metodi presenti nel web service, cliccando su uno di essi mi apre la pagina di dettaglio completa del tasto invoke per poter effettuare il test. fin qui tutto ok il web service mi ritorna la risposta che io mi aspetto:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<string xmlns="http://miodominio.it/">Hello World</string>
quindi alla luce di questo do per scontato che il web service funziona in maniera corretta. vi riporto di seguito anche il codice del web service
<%@ WebService Language="C#" Class="mioWebService" %>
using System;
using System.Collections;
using System.Data;
using System.Web;
using System.Web.Services;
using System.IO;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
[WebService(Namespace = "http://miodominio.it/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// Per consentire la chiamata di questo servizio Web dallo script utilizzando ASP.NET AJAX, rimuovere il commento dalla riga seguente.
[System.Web.Script.Services.ScriptService]
public class MioWebService : System.Web.Services.WebService
{
public MioWebService()
{
//
// TODO: Aggiungere eventuale codice del costruttore necessario
//
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
return "Hello World";
}
}
poi ho tentato di implementare la chiamata da una pagina html5 tramite la libreria jquery utilizzando la funzione $.ajax, di seguito riporto il metodo implementato
$(document).ready(function() {
$("#Prova").click(function() {
requestToWS();
});
});
function requestToWS() {
var sUrl = "http://www.miodominio.it/mioWebService.asmx/HelloWorld";
$.ajax({
type: "POST",
url: sUrl,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{}",
success: function(data) {
var data = eval('(' + data.d + ')');
alert(data);
$("#Prova").html("ok");
},
error: function(xhr, status, error) {
alert(xhr.responseText);
$("#Prova").html("ko");
}
});
}
mi accade che la chiamata ajax mi fa sempre in errore restituendomi questo messaggio
XMLHttpRequest cannot load http://www.miodominio.it/mioWebService.asmx/HelloWorld. Origin null is not allowed by Access-Control-Allow-Origin.
su internet sull'argomento si trovano moltissime info, il web service funziona, nella chiamata da jquery non ci vedo alcuna anomalia, da un pò di ricerche ho trovato un articolo nel quale si accennava al fatto che tento di chiamare il web service da un dominio diverso e che non fosse possibile.
Questo programmino che sto scrivendo si tratta in sostanza di una piccola applicazioncina per dispositivi mobile, una galleria fotografica, dalla quale voglio caricare dinamicamente le immagini che ho sul mio dominio tramite l'interrogazione del web service.
Secondo quello che dovrebbe essere il concetto di web service non dovrebbero esserci problemi di domini di appartenenza o sbaglio? qualcuno di voi riuscirebbe ad aiutarmi?
grazie a tutti spero di essere stato abbastanza dettagliato nell'esposizione del mio problema.