当前位置: 首页 > 知识库问答 >
问题:

Codeigniter不允许通过url在REST API post方法中发布数据。它显示错误,就像未知方法一样

严阳夏
2023-03-14

我正在尝试通过url发送数据,如

http://localhost/api/index.php/society/?date=20/04/2017

但它显示错误信息:

{“状态”:false,“错误”:“未知方法”}

当我测试与邮递员高级Rest客户端应用程序,它的工作正常,数据发布和更新数据库。

网址:http://localhost/api/index.php/society

我的控制器......

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

require_once APPPATH . 'libraries/REST_Controller.php';

use Restserver\Libraries\REST_Controller;

class Society extends REST_Controller
{

    function __construct()
    {
        parent::__construct();
        $this->load->database(); 
        $this->load->model('Society_model');
    }

    public function index_get()
    {
        $data = $this->Society_model->society_get();
        $this->response($data);
    }

    public function index_post()
    {

        $data = array( 
            'date' =>$this->post('date'),
            'society_name' => $this->post('s_name'), 
            'society_group' => $this->post('g_name'),
            'contact_name' => $this->post('c_name'),
            'mobile_no' => $this->post('mobile'),
            'address' => $this->post('address'),
            'city' => $this->post('city'),
            'state' => $this->post('state'),
            'pincode' => $this->post('pincode'),
            'email_id' =>$this->post('email')
           ); 

         $this->Society_model->insert($data); 

         $this->set_response($data, REST_Controller::HTTP_CREATED);
    }
}

我的模特。。。。

<?php

class Society_model extends CI_Model
{

    function __construct()
    {
        parent::__construct();  
    }

    public function society_get(){
        $this->db->select('*');
        $this->db->from('society_contact');
        $result = $this->db->get();
        return $result->result();
    }

    public function insert($data) 
    { 
         if ($this->db->insert("society_contact", $data)) 
         { 
            return true; 
         } 
    } 
}

共有2个答案

谈萧迟
2023-03-14

不能通过浏览器使用POST方法。您必须使用POSTMAN或其他REST客户端。浏览器中的URL仅允许您获取信息。

请参阅这篇文章,我如何使用Firefox或Chrome手动触发HTTP post请求?

还有你的网址http://localhost/api/index.php/society/?date=20/04/2017

这是不正确的,因为当您添加?something=something,这是一个参数,如果您添加了/这是url的单独部分。这就是为什么你不知道这个方法。

王飞虎
2023-03-14

社会是你的模范函数名。。用索引名来称呼它http://localhost/api/index.php/index/?date=20/04/2017

 类似资料:
  • 问题内容: 尝试提交请求时出现此错误。 这是我的烧瓶代码。 还有我的index.html 编辑..我完整的烧瓶代码: 问题答案: 您正在发布到该函数,而您的函数侦听 另一条路线 ;它被注册为仅收听,而不是: 该路由不接受,默认情况下仅接受,并且被允许。 相应地调整表格: 考虑到瓶并 不会 重新加载源,除非你将调试:

  • 问题内容: 我正在开发flask注册表格,但收到错误消息: 码: registration.html: 当我访问时,我收到错误消息。我究竟做错了什么? 问题答案: 这是因为在定义路由时仅允许POST请求。 当你在浏览器中访问时,它将首先执行GET请求。只有提交表单后,浏览器才会执行POST。因此,对于像你这样的自我提交表单,你需要同时处理两者。 使用 应该管用。

  • 我正在尝试使用angularJs和$http发布一个表单。post方法。但每当我执行此函数时,它都会给我以下错误:加载资源失败:服务器响应状态为405(不允许使用方法),我不知道该怎么办。(Im使用visual studio 2015)

  • 我试图用jQuery做一个POST请求,但是我得到了一个错误405(不允许使用方法),我正在使用Laravel 5 这是我的代码: jQuery 超文本标记语言 控制器 JQuery错误http://localhost/laravel5.1/public/empresas/eliminar/5405(不允许方法)。 url值为 数据值是 如果我更改为request它工作正常,但我想做一个post请

  • 我有Laravel 5.4和VueJs应用程序。当我在Localhost中运行它时,它已经工作了,但是现在。我把主机放在一台服务器上,它会给出错误信息 这是我在VueJS的POST请求 这是api.php

  • 问题内容: 我正在编写一个Android 2.2应用程序,该应用程序将JSON严格性过帐到ReSTfull Web服务。 Fiddler对Web服务的调用具有与预期相同的Json返回,而对ASPX Web应用程序具有与预期的相同Json返回。 当我查看服务器日志时,可以看到服务器使用307重定向响应初始POST动词,然后立即响应GET和405错误。 Fiddler和aspx应用程序记录一个307重