我正在將Ionic v1應用程序遷移到Ionic v2。在我的一個方法中,我調用了一個WCF服務。在AngularJS我不喜歡這樣寫道:Http post Angular2
$http({
method: 'POST',
url: url,
data: JSON.stringify({ dato: 11 }),
dataType: "json",
contentType: "application/x-www-form-urlencoded"
})
而且在Angular2這樣的:
let data = JSON.stringify({ dato: 11 });
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded'});
let options = new RequestOptions({ headers: headers });
this.http.post(url, data, options)
.subscribe(data => {
console.log(data);
}, error => {
console.log("Error");
});
不過,我從C#的服務收到一個錯誤,說我發送給我的函數格式是' RAW',等待它發送JSON和Angular 2
AngularJS發生了這個錯誤,但它是通過添加我之前留在這篇文章中的代碼解決的。
編輯
我的WCF服務:
[OperationContract]
[WebInvoke(UriTemplate = "/GetCaptaciones", Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat=WebMessageFormat.Json , BodyStyle = WebMessageBodyStyle.Wrapped)]
List<Captacion> GetCaptaciones(int id_captador);
和
let data = JSON.stringify({ id_captador: 11 });
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.post(url + "/GetCaptaciones", data, options).subscribe(data => {
console.log(data);
});
不工作,
但是,如果我從郵差測試這個工作
謝謝回答。當我更改該內容類型時,出現錯誤「405方法不允許」 – sioesi
那麼,您將需要修復您的網絡服務器,以便它接受POST請求。 405狀態碼通常表示Web服務器不理解您正在使用的HTTP動詞。 –
我將添加我的服務,以便您可以看到它。 – sioesi