Невозможно вызвать метод сообщения Wcf из Ionic 3 - PullRequest
0 голосов
/ 05 мая 2018

Я запрашиваю метод wcf post от ionic, но получаю ошибку

{"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"Unknown Error","url":null,"ok":false,"name":"HttpErrorResponse","message":"Http failure response for (unknown url): 0 Unknown Error","error":{"isTrusted":true}}

Мой метод публикации WCF:

  public Stream GetMonthWiseAttendance(InputMonthwise input)
        {
            var SerializeObject = new JavaScriptSerializer();    
            var temp = context.MobAttendMonthWiseStudentAttaindance(input.StudentMainId, input.InstituteId, input.Yearid).ToList();
            string jsonClient = SerializeObject.Serialize(temp);
            WebOperationContext.Current.OutgoingResponse.ContentType =
                "application/json; charset=utf-8";
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*");
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With,Accept");
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Methods", "GET, PUT, POST");
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Max-Age", "1728000");
            return new MemoryStream(Encoding.UTF8.GetBytes(jsonClient));
       }

Мой ионный код

callPost()  
 { 
    let headers = new HttpHeaders();
    headers.append('Content-Type', 'application/json');
    headers.append('Access-Control-Allow-Origin' , '*');
    headers.append('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, PUT');
   let data=JSON.stringify({userName:'Rameshwar',InstituteId:1191,Yearid:135,StudentMainId:135 });

      this.http.post("myUrl"  ,data, { headers: headers }   )
           .subscribe(res => 
                          {               
                              alert("success "+JSON.stringify(res));
                          },
                          (err) => 
                          {
                              alert('ERRROR '+JSON.stringify(err));
                           });
  } 

С помощью этого ионного кода я могу вызвать метод post из php, но при вызове метода wcf я получил ошибку. Я также могу вызвать метод Get Wcf с тем же заголовком в ответ

WebOperationContext.Current.OutgoingResponse.ContentType =
                "application/json; charset=utf-8";
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*");
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With,Accept");
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Methods", "GET, PUT, POST");
            WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Max-Age", "1728000");
            return new MemoryStream(Encoding.UTF8.GetBytes(jsonClient));

Я также проверил этот почтовый запрос wcf с клиентом Postman Rest. Я хорошо получаю ответ от остальных клиентов / почтальонов.

1 Ответ

0 голосов
/ 05 мая 2018

Я думаю, что проблема в Ionic Code, нет необходимости фиксировать данные поста, ionic внутренне управляет ими.

let data=JSON.stringify({userName:'Rameshwar',InstituteId:1191,Yearid:135,StudentMainId:135 });

Изменить на,

let data={userName:'Rameshwar',InstituteId:1191,Yearid:135,StudentMainId:135 };

Надеюсь, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...