在Codeigniter中的Ajax上获取错误404
Getting error404 on Ajax in Codeigniter
我的ajax代码有问题。我试图用ajax增加点击跨度内的数量,但控制台中不断出现错误-POST localhost/slots/game/lines
404(未找到(。顺便说一句,我使用Codeigniter。
这是代码:
PHP(控制器(
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Game extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index(){
}
function win()
{
$this->session->set_userdata( array('win') => $win);
$win = $this->input->post('win');
}
function lines()
{
$this->session->set_userdata( array('lines') => $lines);
$lines = $this->input->post('lines');
echo $lines++;
}
function wager(){
$this->session->set_userdata( array('wager') => $wager);
$wager = $this->input->post('wager');
}
}
?>
这是我的Ajax-
function lines()
{
var lines = parseInt($('#lines span').html()) + 1;
$.ajax({
type: 'POST',
url: base_url + 'game/lines',
data: { lines: lines },
success:function(response){
if(response <= 8){
$('#lines span').html(response);
return true;
}
else return false;
}
});
}
在我的HTML中,我称之为lines function onclick
。我正在使用最新的examplep作为我的虚拟主机。我在CI中也有一个自定义路由-
$route['game/(:any(']="game/$1">P.S.base_url在JS中被定义为变量。
正如我们在评论中发现的那样,您的问题是url_write。试试这个:
制作一个名为.htaccess的文件,并将其放在根文件夹中,即index.php文件所在的位置(注意前面的点(。写下这个代码:
RewriteEngine on
RewriteCond $1 !^(index'.php|images|robots'.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
在application/config/config.php中,索引文件选项应为空,如:
$config['index_page'] = '';
尝试更改路线:
$route['game/(:any)'] = "game/lines/$1";
refer to the codeigniter user_guide to learn more about URI routing.
顺便问一下,你在用.htaccess吗?
我的建议是把它放在GUI(view.php(中
<script>
function lines(){
var lines = parseInt($('#lines span').html()) + 1;
$.ajax({
type: 'POST',
url: '<?php echo base_url()?>game/lines',
data: { lines: lines },
success:function(response){
if(response <= 8){
$('#lines span').html(response);
return true;
}
else return false;
}
});
}
</script>
要检查您的代码,请将url设置为静态,如下所示:
http://localhost/game/lines
- 谢谢大家帮助我
- 最后的解决方案是在ajax url中提供完整的路径,类似于
url: 'localhost/slots/index.php/game/line'
它一定和examplep有关,因为在工作中(我们使用Linux和lighttpd('echo-base_url((;'工作得很好,所以我可以这样写我的ajax url路径:url: '<?php echo base_url(); ?> + 'game/line
。
希望你不会像我那样陷入困境。
如果url_write不是你的问题,并且正如你在问题后的最后一条评论中所说,你得到了500 Internal Server Error
,那么这是因为你在控制器方法中的语法错误,如下所示:
$this->session->set_userdata( array('lines') => $lines); //wrong -syntax error
将其更改为以下行:
$this->session->set_userdata( array('lines' => $lines )); //Right
我正在写你的Whole控制器,没有任何语法错误,用你的替换它,它就会工作。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Game extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index(){
}
function win()
{
$this->session->set_userdata( array('win' => $win));
$win = $this->input->post('win');
}
function lines()
{
$this->session->set_userdata( array('lines' => $lines));
$lines = $this->input->post('lines');
echo $lines++;
}
function wager()
{
$this->session->set_userdata( array('wager' => $wager));
$wager = $this->input->post('wager');
}
}
请按如下方式使用路线:$route['game/(:any(']="游戏/线路/$1";
并尝试发送完整的基本URL来命中ajax请求。
- chrome在WebSocket握手期间获取新错误
- 在引用最新的rxjs时获取rxjs错误
- Ruby on Rails屏幕抓取错误-“;您必须在浏览器中启用javascript才能使用此应用程序"
- Twitter引导程序弹出在网站上不起作用:未获取引用错误
- 正在获取语法错误:意外的标识符和未捕获的ReferenceError
- D3 Json请求获取XmlHttpRequest错误:访问控制允许原点不允许原点为null
- 使用.content().get().nodevalue;后在firebug中获取类型错误;
- 使用hasAttribute()获取类型错误:hasAttribute不是函数
- jquery日期分析器错误获取NaN错误
- 在jquery ajax POST中获取400(错误请求)错误
- 无法在 IE 10 中获取属性错误
- jQuery 在使用 ajax 时抓取错误的形式
- 获取类型错误:无法在 angularjs 控制器中调用未定义的方法 'then'
- 未定义获取 jquery 错误 $
- AngularJS在从HTTP返回的JSON中获取语法错误.JSONP.
- 在使用日历的产品页面上的 magento 中获取“类型错误:触发器元素为空”错误
- 调用函数时获取类型错误
- 无法在节点应用程序上获取/文件名错误
- JavaScript 中的 try-catch:如何获取原始错误的堆栈跟踪或行号
- 需要获取 JavaScript 错误对象