我在“网络”标签中得到了回复,但在控制台中仍然显示错误

时间:2019-06-17 06:38:30

标签: angular codeigniter http response

我正在用angular写一个post方法来发布一些数据,这些数据我将在Codeigniter中返回JSON。

这是服务:

public userlogin(data) {
  let uploadURL = `myurl`;

  const requestOptions: Object = {
    responseType: 'json'
  }    
   return this.http.post<any>(uploadURL, data,requestOptions).pipe(map((responce) => {
    console.log(responce);
    return responce;
  })
  );
}

在我的组件中:

this.services.postuser(formData).subscribe(
  (data) => {
    console.log(data);
  }
);

以下错误,我进入控制台 Http error response to my post method

,这是我的网络标签的屏幕截图,其中的响应是JSON enter image description here

我经历了很多堆栈溢出问题和答案,但是该解决方案不适用于我。 我还将post方法的响应方式从JSON更改为文本,并将post方法中的响应类型更改为仍然收到相同错误的文本。

发布的后端功能:

public function user_login()
    {
    if(is_array($_POST) && sizeof($_POST) >0){

       $where_array = array(
        'username'=>$this->input->post('username'),
        'password'=>$this->input->post('password')
        );

            $result = $this->Admin_model->checkuser($where_array);
            // print_r($result); die;
            if($result == "user not found" || $result == "incorrect password")
            {
                $json_data = array("Code"=>"1","data"=>$result);
                echo json_encode($json_data, JSON_UNESCAPED_SLASHES);

            }else{
                 $json_data = array("Code"=>"0","data" => "Login successfull");
                 echo json_encode($json_data, JSON_UNESCAPED_SLASHES);
            }
     }   
 }

3 个答案:

答案 0 :(得分:0)

以我的个人经验,使用过asp.net核心后端(sql数据库)和NodeJS Express后端(mongoDB)

内部Angular前端:

在我的返回Observable的服务中 只需返回发帖请求,就像这样:

return this.http.post(url, data, options);

使用该服务的组件中将如下所示:

this.service.postMethod(data).subscribe((res)=>{}, (err)=>{});

答案 1 :(得分:0)

由我自己解决:

我发现问题与发送的请求或响应无关。 实际上,这是一个cors错误,因为服务器未设置为接受跨域请求。

首先,我安装了this Firefox扩展程序以测试问题,然后得到响应。

所以经过测试,在我的ci文件中,我将原点设置为'*'以允许所有原点。

header("Access-Control-Allow-Origin: *");

答案 2 :(得分:0)

还要设置内容类型json,以确保不会抛出任何其他错误。

将以下代码放在php文件顶部:

header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');

有关此answer.

的信息,