【问题标题】:http post does not work codeigniter,angular apphttp post不起作用codeigniter,angular app
【发布时间】:2017-06-02 11:33:15
【问题描述】:

我正在客户端制作带有 Angular 的 codeigniter 应用程序。所以我的帖子不起作用,请帮助。

角度

$scope.posaljiKontroleru = function () {
                $scope.prosek = {kalorije: 0.0, proteini: 0.0, uh: 0.0, masti: 0.0};
                $http({
                    method: 'POST',
                    url: 'http://localhost/psi/Pravljenjejela/dodajBazi',
                    data: JSON.stringify($scope.prosek),
                    headers: {'Content-Type': 'application/json'}

                }).success(function(data) {

                });
            }

CI 控制器

public function dodajBazi(){
        echo $this->input->post('kalorije');

    }

【问题讨论】:

    标签: angularjs json codeigniter post


    【解决方案1】:

    你可以用不同的方式解决它。

    首先您可以在发送标头时指定 form-urlencoded 作为内容类型

    'Content-Type': 'application/x-www-form-urlencoded'
    

    并使用 URLSearchParams 对象添加请求参数:

    const params = new URLSearchParams();
    for (let dataKey in data) {
      if (data.hasOwnProperty(dataKey)) {
        params.append(dataKey, data[dataKey]);
      }
    }
    

    例如:

    const params = new URLSearchParams();
    params.append('kalorije', 0.0);
    params.append('proteini', 0.0);
    params.append('uh', 0.0);
    params.append('masti', 0.0);
    
    $http({
      method: 'POST',
      url: 'http://localhost/psi/Pravljenjejela/dodajBazi',
      data: params,
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).success(function(data) {
    

    否则,如果您想以application/json 发送参数,则必须将输入放入控制器中的$_POST var:

    $_POST = file_get_contents("php://input");

    【讨论】:

    • 我做了第一种方法,我没有回应任何东西
    • 您可以尝试将 0.0 作为字符串发送吗?我改变它作为回应
    【解决方案2】:
    $http({
        url: "http://example.appspot.com/rest/app",
        method: "POST",
        data:  {"kalorije": 0.0, "proteini": 0.0, "uh": 0.0, "masti": 0.0}
    }).success(function(data, status, headers, config) {
        $scope.data = data;
    }).error(function(data, status, headers, config) {
        $scope.status = status;
    })
    

    【讨论】:

    • 发布答案时,除了代码之外,请尝试提供解释。
    猜你喜欢
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多