我正在将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