Ionic:可能 http.post 到 Web Api RestFul 不起作用
Ionic: My http.post to WebApi RestFull doesn't work
我正在使用 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] 放在 [Route("AuthFullUser")] 上面,我可以访问网络服务但是参数是NULL.
我尝试使用 $.ajax{} 或 $.post{}[=42= 提出请求] 但都没有用。
我尝试添加 headers:
"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 服务和他的 headers。
您只需要允许所有 headers,它都在文档中。
如果有人有问题,可以在这里提出,我会尽力给出最佳答案。
我正在使用 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] 放在 [Route("AuthFullUser")] 上面,我可以访问网络服务但是参数是NULL.
我尝试使用 $.ajax{} 或 $.post{}[=42= 提出请求] 但都没有用。
我尝试添加 headers:
"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 服务和他的 headers。 您只需要允许所有 headers,它都在文档中。
如果有人有问题,可以在这里提出,我会尽力给出最佳答案。