我正在用Ionic Framework开发一个应用程序,我正在用我的Web服务API RestFull改变一些信息。当我用GET方法连接时,它可以工作,但当我尝试用POST方法连接时,它不能工作。
这是Ionic的代码。
import { HttpClient ] from '@angular/common/http';
constructor(private http: HttpClient ...)
这是函数(我返回一个承诺)。
var user = {"nom" : "whatever", "password" : "whatever2"};
var options = { headers: {'Content-Type': 'application/json; charset=utf-8;'}};
return this.http.post(myLink, user, options).toPromise();
在Web服务中,代码是(C#):
[Route("AuthFullUser")]
[HttpPost]
public HttpResponseMessage login([FromBody]User user){
var u = UserRepository.login(user.nom.ToString(), user.password.ToString());
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, u);
return response;
}
如果我试着从Ionic中进入,就不能工作,但是如果用 PostMan (一个应用程序)它的工作。
另一方面,如果我把 [HttpOptions] 在...之上 [路由("AuthFullUser")] 我可以访问网络服务,但参数是 NULL.
我试图用 $.ajax{} 或 $.post{} 但都没有用。
我试着加在我的标题上。
"Acces-Control-Allow-Origin" : "*",
"Acces-Control-Allow-Credentials" : "true",
"Acces-Control-Allow-Methods" : "GET, POST, PUT, DELETE, OPTIONS",
"Acces-Control-Allow-Headers" : "Content-Type"
但都没有用
我已经为此挣扎了几个星期。任何帮助将是非常感激的。
如果有人有同样的麻烦,我找到了解决方案。
这都是来自Web服务和他的头文件.你只需要允许所有的头文件,这一切都在文档上。
如果有人有问题,他们可以把它放在这里,我会尽量给我最好的答案。