如何将Angular4中的参数传递给codeigniter API

问题描述 投票:0回答:1

本地主机/ CI-ABC / API / get_userid?用户名=优素福

这是在邮递员中工作的API并返回用户ID

但是我是初学者,所以我很困惑如何将angular http服务方法中的参数传递给codeigniter的API。没有参数的API工作正常,但我无法找到传递username参数的方法来获取它的id。

我搜索了一下,能够找到URLSearchParams()作为解决方案,但它不起作用,这就是我做的。

 getUserid()
  {
    let myParams = new URLSearchParams(); 
    myParams.append('username', 'yousuf');
    console.log(myParams);
    return this.http.get('http://localhost/ci-abc/api/get_userid', {params : myParams})
    .map(res=>res.json());
  }

和codeigniter中的API是

function get_userid_get()
    {
        $username = $this->get('username');

        if (!$username) {
            $this->response("No username specified", 400);
            exit;
        }
        $result = $this->user_model->get_userid($username);
        if ($result) {
            $this->response($result, 200);
            exit;
        } else {
            $this->response("Invalid username", 404);
            exit;
        }}

几个小时我尝试不同的方式,但没有运气,所以不好意思帮助

Mozilla Firefox在控制台中出现此错误。

错误{...} _body:“\”没有指定用户名\“”标题:对象{_headers:Map,_normalizedNames:Map} ok:false状态:400 statusText:“错误请求”类型:2 url:“http://localhost/ci-abc/api/get_userid”proto:Object {constructor:Response(),toString:Response.prototype.toString()}

angular api codeigniter
1个回答
0
投票

HTTP GET请求没有paramsquery strings

http.get('http://localhost/ci-abc/api/get_userid?' + myParams.toString())

如果您尝试进行身份验证,建议使用POST方法。

在你的angular.js方面,

let myParams = { username: "username"};

http.post('http://localhost/ci-abc/api/get_userid', myParams)

在你的API方面,

$username = $this->input->post('username');
© www.soinside.com 2019 - 2024. All rights reserved.