2017-06-16 4 views
0

Ich kann keine der Anleitungen oder Setup-Anweisungen erhalten, damit ein Web-Service von einer JavaScript-Funktion konsumiert werden kann. Auf meinem PC, Chrome wirft nur einEinrichten von IIS für Web-Service

500 (Internal Server Error)

und Ausführen der Web-Seite vom Server, IE wirft

erforderlich Cross-Origin Resource Sharing (CORS).

und

erforderlich Preflight CORS.

Ich habe die erforderlichen domänenübergreifenden Einstellungen zu webconfig hinzugefügt, aber es funktioniert immer noch nicht.

<configuration> 
    <system.web> 
     <customErrors mode="Off"/> 
     <compilation strict="false" explicit="true" targetFramework="4.5" /> 
     <httpRuntime targetFramework="4.5" /> 
     <webServices> 
     <!-- added because asmx --> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
     </webServices> 
    </system.web> 
    <system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
     <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> 
     </customHeaders> 
    </httpProtocol> 
    </system.webServer> 

</configuration> 

Javascript:

function GetMember() { 
    $.ajax({ 
     type: "POST", 
     url: "https://www.mywebsite.org/Callsickapp/Webservice1.asmx/HelloWorld", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: OnGetMemberSuccess, 
     error: OnGetMemberError 
    }); 
} 
document.getElementById("btnCallService").onclick = GetMember; 
function OnGetMemberSuccess(data, status) { 
    //jQuery code will go here... 

    document.getElementById("answers").innerHTML= data.d; 
} 
function OnGetMemberError(request, status, error) { 
    //jQuery code will go here... 
    document.getElementById("answers").innerHTML= request.statusText 
} 

Was bin ich?

Antwort

0

Ich musste nur den Kommentar an der Spitze der Web-Service-.vb-Datei von Visual Studio generiert.

'To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 

' <System.Web.Script.Services.ScriptService()> _ 

Einfache "HelloWorld" Web-Service und andere Web-Services von Tutorials funktionieren jetzt gut.

Verwandte Themen