【问题标题】:Ionic / Angular POST request not passing values to API ActionIonic / Angular POST 请求未将值传递给 API 操作
【发布时间】:2016-05-12 05:36:27
【问题描述】:

我是 Angular 和 ionic 的新手,所以我开始使用 AngularJS 创建简单的 ionic 应用程序,但我遇到了一个问题,我尝试在 google 上搜索但无法弄清楚。

用于测试我在角度控制器中的硬编码参数。 从 ionic 应用程序单击提交按钮后,它会在 API 控制器中执行相关操作,但数据显示为 null,

如果有人能帮助解决这个问题,将不胜感激,

AngularJs 控制器

 $scope.savenewdansal= function(newDansal){

      $http({
          method  : 'POST',
          url     : 'http://localhost:51079/api/Dansal/SaveNewDansal',
          dataType: 'json',
          data: JSON.stringify({"MainCategory": "category1","SubCategory": "subCateMy","District": "Central","City": "Colo","date": "2000-01-01T00:00:00","Time": "2001-01-01T00:00:00","Venue": "kurudnwa","contacts": "nocon"}),
          headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
     })
      .success(function(data) {
        if (data.errors) {
            console.log(data.errors.name)
        } else {
          console.log(data.message);
        }
      });

WebAPI 操作

[HttpPost]
    [ActionName("SaveNewDansal")]
    public VM_NewDansal SaveDansal(VM_NewDansal newDansal)
    {

        return newDansal;
    }

模型类

 public class VM_NewDansal
{
    public string MainCategory { get; set; }
    public string SubCategory { get; set; }
    public string District { get; set; }
    public string City { get; set; }

    public string date { get; set; }
    public string Time { get; set; }
    public string Venue { get; set; }
    public string contacts { get; set; }

}

Ionic App 和 WebAPI 服务都在本地主机上运行 谢谢

【问题讨论】:

  • 只传递一个对象而不是字符串化。为什么这个标题是必要的?
  • 我在另一篇文章中看到了它,这就是为什么以这种方式创建它,但如果我移动了它,应用程序会给我这个错误“预检响应具有无效的 HTTP 状态代码 405”
  • 你尝试了什么?您是否删除了字符串化?
  • 是的,我删除并尝试但仍然没有线索,我从浏览器的网络选项卡中获取了发布 json 数据集,如果我在 POSTMAN 中调用具有相同数据的方法,它正在工作。
  • 只做$http.post(uri, data) 和回调

标签: angularjs asp.net-web-api ionic-framework


【解决方案1】:

在搜索了谷歌的另一篇帖子后,我找到了解决我问题的方法,感谢所有试图帮助我的人。

首先我改变

headers : {'Content-Type': 'application/x-www-form-urlencoded'}

headers : {'Content-Type': 'application/json'} 

然后它给了我以下错误,

XMLHttpRequest cannot load http://localhost:51079/... Response for preflight has invalid HTTP status code 405

所以要弄清楚发生错误是因为它需要启用跨域,因为我的 ionic 应用程序和 webserice 都在本地主机同一机器上运行,但在不同的端口中运行。

所以如果有人想启用 CORS,请检查以下链接

link

否则在Internet Explorer中检查,比较来源时不考虑端口。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多