Php Post方法在Codeigniter中不起作用
我正在使用HMVC codeigniter。我第一次尝试使用jQueryAjax。当我使用POST时,它会给出未定义的错误,而使用GET时它会响应我的数据Php Post方法在Codeigniter中不起作用,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我正在使用HMVC codeigniter。我第一次尝试使用jQueryAjax。当我使用POST时,它会给出未定义的错误,而使用GET时它会响应我的数据 $.ajax({ type: "POST", url: filelink+"cart/add_cart_item", data: {"product_id":id,"quantity":qty,"ajax":"1"}, dataType: "js
$.ajax({
type: "POST",
url: filelink+"cart/add_cart_item",
data: {"product_id":id,"quantity":qty,"ajax":"1"},
dataType: "json",
success: function(msg){
alert( "Data Saved: " + msg );
},
error: function(jqXHR, textStatus, errorThrown){
alert(textStatus + " " + errorThrown);
}
});
在谷歌搜索和搜索之后,我一直在尝试什么-
class Cart extends CI_Controller { // Our Cart class extends the Controller class
function __construct()
{
parent::__construct();
$this->template->set('controller', $this);
}
function _remap()
{
$uri2 = $this->uri->segment(2);
if (is_numeric($uri2) OR $uri2 == FALSE) {
$this->index();
} else if ($uri2 == 'add_cart_item') {
$this->add_cart_item();
} else if ($uri2 == 'show_cart') {
$this->show_cart();
}
}
function add_cart_item(){
echo "asdfsadfdsf";
exit;
}
}
有人能帮我吗?你的问题可能有原因 您可能正在使用未加载的模型。
模型中可能存在一些代码问题。
您可能不会返回模型中的任何内容并对其进行响应。
此外,如果您需要返回数据,请使用echo json_encode($data)这可能是您出现问题的原因 您可能正在使用未加载的模型。
模型中可能存在一些代码问题。
您可能不会返回模型中的任何内容并对其进行响应。
另外,如果您需要返回数据,请使用echo json_encode($data)有时,当您将站点加载为但ajax调用中的url为时,会出现此问题。有时,当您将站点加载为但ajax调用中的url为时,会出现此问题。设法找到解决方案。该问题是由于与表单一起发送的CI_令牌造成的。这是不存在的,因为POST方法给出了500个内部服务器错误。我在我的视图文件中添加了以下内容
<?php echo form_open_multipart(); ?>
<?php echo form_close(); ?>
这就解决了问题。我不确定,但这被称为CSRF相关的一些问题
谢谢找到了解决方案。该问题是由于与表单一起发送的CI_令牌造成的。这是不存在的,因为POST方法给出了500个内部服务器错误。我在我的视图文件中添加了以下内容
<?php echo form_open_multipart(); ?>
<?php echo form_close(); ?>
这就解决了问题。我不确定,但这被称为CSRF相关的一些问题
感谢您使用了_remap函数,在获得$uri2后,有一个if检查,它检查您在ajax请求中传递的数量变量,它可能有整数值,很明显可能包含一些整数。 有
$this->uri->segment();
返回给您:
product_id=id
quantity=qty
ajax=1
通过调用
$uri2 = $this->uri->segment(2);
它将向您返回数量,而您的代码中没有定义index()函数,这将导致500个错误
function _remap()
{
$uri2 = $this->uri->segment(2);
if (is_numeric($uri2) OR $uri2 == FALSE) {
$this->index();
} else if ($uri2 == 'add_cart_item') {
$this->add_cart_item();
} else if ($uri2 == 'show_cart') {
$this->show_cart();
}
}
您已经使用了_remap函数,在获得$uri2之后,有一个if检查,它检查您在ajax请求中传递的数量变量,它可能有整数值,很明显可能包含一些整数。 有
$this->uri->segment();
返回给您:
product_id=id
quantity=qty
ajax=1
通过调用
$uri2 = $this->uri->segment(2);
它将向您返回数量,而您的代码中没有定义index()函数,这将导致500个错误
function _remap()
{
$uri2 = $this->uri->segment(2);
if (is_numeric($uri2) OR $uri2 == FALSE) {
$this->index();
} else if ($uri2 == 'add_cart_item') {
$this->add_cart_item();
} else if ($uri2 == 'show_cart') {
$this->show_cart();
}
}
您是否尝试过
var\u dump($this->input->post('product\u id')代码>?它输出了什么吗?@Vikassarma:filelink包含什么?@Vikassarma和你的基本url()看起来像什么?您是否尝试过使用完全限定的url?或者只是控制器的名称加上方法?@Vikassarma如果您正常访问控制器,它是否工作?我看到您实际上在使用hmvc,但您的“e”仍然在扩展ci_控制器而不是Mx_控制器。@Kyokasuigetsu我对这个codeigniter和hmvc非常陌生。实际上,这是其他控制器的设计方式。其他页面使用main.php作为外部模板文件,它们之间通过load partial显示内容。这可能是造成问题的原因吗????他们都在使用ci_控制器。我复制了相同的…您是否尝试过var_dump($this->input->post('product_id')代码>?它输出了什么吗?@Vikassarma:filelink包含什么?@Vikassarma和你的基本url()看起来像什么?您是否尝试过使用完全限定的url?或者只是控制器的名称加上方法?@Vikassarma如果您正常访问控制器,它是否工作?我看到您实际上在使用hmvc,但您的“e”仍然在扩展ci_控制器而不是Mx_控制器。@Kyokasuigetsu我对这个codeigniter和hmvc非常陌生。实际上,这是其他控制器的设计方式。其他页面使用main.php作为外部模板文件,它们之间通过load partial显示内容。这可能是造成问题的原因吗????他们都在使用ci_控制器。我复制了相同的…但我在整个网站上使用相同的。Url很好,但我在整个网站上都使用相同的Url。Url很好..嗨Raheel,我编辑了我的代码。请看一下控制器。我没有使用任何模型。这是问题吗?嗨,拉希尔,我编辑了我的代码。请看一下控制器。我没有使用任何模型。这就是问题所在吗??