2016-07-27 22 views
1

Ich versuche meine erste Angular 2 App. Derzeit habe ich das Problem mit dem Web Service Call. Ich habe Web-Service mit URL wie www.myserver.domain/folder/api/webservice.asmx/method.Rufen Sie asmx Webservice von angular 2

Wenn ich versuche, es mit Firefox aufzurufen, wird die Methode angezeigt und wenn ich es auf localhost ausführe, kann ich es richtig testen. Aber wenn ich versuche, es aus einem Winkelcode zu benennen, wird es fehlschlagen. Kann mir jemand sagen, was mache ich falsch?

Mein Code:

@Injectable() 
export class MyService { 
    // URL to web api 
    private serviceUrl = 'http://www.myserver.domain/folder/api/webservice.asmx/method'; 

    constructor(private http: Http) { } 

    getData() { 
     let body = JSON.stringify({ Param1: "0", Param2: "0", Param3: "0" }); 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
     let options = new RequestOptions({ headers: headers }); 
     return this.http.post(this.serviceUrl, body, options) 
      .toPromise() 
      .then(response => response.json().data as MyDataClass[]) 
      .catch(this.handleError); 
    } 

    handleError(error: any) { 
     console.error('An error occurred', error); 
     return Promise.reject(error.message || error); 
    } 
} 

Für referrence, hier ist, wie mein WebService wie folgt aussieht:

[WebService(Namespace = "mynamespace")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
[ScriptService] 
public class webservice: System.Web.Services.WebService 
{ 
    [WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public void List(int Param1 = 0, int Param2 = 0, int Param3 = 0) 
    { 
     //... some code to populate result of type List<Dictionary<string, string>> 
     data.Message = Common.TranslateToSerialize(result); 
     Context.Response.Write(js.Serialize(data.Message)); 
     return; 
    } 

Danke für jede Hilfe zur Verfügung gestellt. Bitte denken Sie daran, dass ich neu bei JS/Ang2 bin, also wenn Sie fragen, bitte so detailliert wie möglich :)

Antwort

1

Nur um alle wissen zu lassen, was das Problem verursacht hat: Der Dienst gibt die JSON-Antwort zurück, gefolgt von {"d" : null} string. Wenn ich es entferne, wird alles richtig analysiert.

Ich werde diese Frage für eine Weile offen lassen. Ich würde gerne sehen, ob jemand weiß, warum diese Zeichenfolge angehängt ist. Ich werde deine Antwort als die richtige markieren, wenn du es mir erklären kannst. Ich weiß nicht, was der Ursprung dieser Zeichenfolge ist, da der Webdienst JSON ohne es sicher zurückgibt.

Danke an alle, die versuchen werden zu antworten/zu erklären.

+0

hi Ich habe versucht mit asmx Webservice in angular2, aber keine Lösung haben Sie eine Demo als Referenz? – Pravin

Verwandte Themen