首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >代码点火器重定向返回字符串,而不是将其传递给url。

代码点火器重定向返回字符串,而不是将其传递给url。
EN

Stack Overflow用户
提问于 2015-05-08 02:46:54
回答 1查看 359关注 0票数 1

这是我使用ajax登录的控制器。Login.php

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller {

public function index(){
    $this->load->view('login');
}

public function checkLogin(){
    if($this->input->is_ajax_request() && isset($_POST['email']) && isset($_POST['password'])){#restrict direct access from browser
        if(empty($this->input->post('email')) || empty($this->input->post('password'))){
            echo "not";
        }else{
            if(filter_var($this->input->post('email'), FILTER_VALIDATE_EMAIL) === false){
                echo "not";
            }else{
                $data = array(
                        'email' => $this->input->post('email'),
                        'password' => md5($this->input->post('password'))
                    );
                if($this->db->select('*')&&
                $this->db->from('users')&&
                $this->db->where($data)){
                    if($this->db->count_all_results() > 0){
                        redirect('homepage'); #REDIRECT
                    }else{
                        echo "not";
                    }
                }

            }
        }

    }else{
        show_error("No direct script access allowed");
    }
}
}

这是我的javascript文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
$("#login-form").submit(function(event){
    event.preventDefault();
    $.ajax({
        url: 'http://citest.local/login/checkLogin',
        type: 'POST',
        data: {
                email: $.trim($("#email").val()),
                password: $.trim($("#password").val())},
    })
    .done(function(result) {
        if(result == "not"){
            $(".has-feedback").addClass('has-error');
            $(".glyphicon").addClass('glyphicon-remove');
        }else{
            $(".has-feedback").removeClass('has-error');
            $(".glyphicon").removeClass('glyphicon-remove');
            $(".has-feedback").addClass('has-success');
            $(".glyphicon").addClass('glyphicon-ok');
            console.log(result);
        }
    });
});
});

这是由我的控制器的重定向函数返回到控制台的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Simple Contacts</title>
<link rel="stylesheet" href="">
</head>
<body>

</body>
</html>

.htaccess

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Disable rewrite for valid directory/files     
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 

#map all request urls to a specific controller method
RewriteRule ^(.*)$ index.php?/{controller}/{method}/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: ElliotHaughin

  ErrorDocument 404 /index.php
</IfModule>

站点配置(nginx)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;

    root /home/user/trytry/ci_test;
    index index.html index.htm index.php;

# Make site accessible from http://localhost/
server_name citest.local;

# unless the request is for a valid file (image, js, css, etc.), send to bootstrap
if (!-e $request_filename)
{
    rewrite ^/(.*)$ /index.php?/$1 last;
    break;
}   

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    # Uncomment to enable naxsi on this location
    # include /etc/nginx/naxsi.rules
}

# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
#   proxy_pass http://127.0.0.1:8080;    
#}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
#   root /usr/share/nginx/html;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

    # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
#   deny all;
#}
}

为什么重定向不像预期的那样起作用?它返回字符串,而不是重定向url。请帮帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-08 02:58:32

AJAX的设计并不是为了这样的工作。你用代码重定向

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
redirect('homepage'); #REDIRECT

是将ajax请求重定向到该页面,该页面然后从主页视图中获取信息,然后将其作为AJAX响应传递回来。

如果要重定向,则应通过AJAX传回一条成功或失败的消息,然后使用JavaScript在浏览器内重定向。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30121915

复制
相关文章
如何新窗口打开导航链接?
像没有服务器,没弄多个Github账号的人,比如我(资深白嫖党),可能会遇到这个问题。
唐志远
2023/08/01
2710
如何新窗口打开导航链接?
修改博客文章链接为新窗口打开的方式
记得,前段时间卢松松博客放出一个关于文章链接是新窗口 or 原窗口浏览方式的投票,结果大部分人都投给了新窗口,而投给原窗口的我顿时有点奥特 Man 的感觉。经过思考,俺最终决定还是使用新窗口打开方式,变相留住访客,虽说我觉得可能造成用户体验不怎么友好(个人仍然喜欢原窗口方式,或许是因为守旧的性格吧!o(╯□╰)o)。 昨天弄到晚上 11 点,将博客的文章链接基本都修改成新窗口打开的方式,没有采用插件,全部手动修改,真是生命不息,折腾不止啊! 除插件之外,其实还有一种全局修改的方法:在<head> </hea
张戈
2018/03/26
1.9K0
vue路由如何在新窗口打开页面
官方文档中说 v-link 指令被 <router-link> 组件指令替代,且 <router-link> 不支持 target="_blank" 属性,如果需要打开一个新窗口必须要用<a>标签,但事实上vue2版本的 <router-link> 是支持 target="_blank" 属性的(tag="a"),示例如下:
李维亮
2021/07/08
8.3K0
Chrome下的打开新窗口
做了一个后台运维管理系统<前台页面基于Extjs进行开发>,在点击datagrid头部一个按钮,需要打开一个新窗口
meteoric
2018/11/15
3.6K0
在新窗口打开链接
最近博主再用H+模板时候表单提交和链接都在新窗口打开,没看见target="_blank",一直没查出来,苦恼N久,今天百度了如何用JS css等等实现网页所有链接在新窗口打开,终于找到了原因,因如下代码导致。 代码如下:
雨落凋殇
2019/12/25
2.7K0
JS 新窗口打开超链接
第一种  给a标签添加点击事件: 源码: //点击百度一下 进行百度搜索 $("#baiduBtn").click(function(){ this.href="
明明如月学长
2021/08/27
16.2K0
WinForm MDIParent如何防止重复打开
DI,全称是多文档界面(Multiple Document Interface),主要应用于基于图形用户界面的系统中。其目的是同时打开和显示多个文档,便于参考和编辑资料。
跟着阿笨一起玩NET
2019/03/14
1.1K0
WinForm MDIParent如何防止重复打开
JS post方式打开新窗口
郭顺发
2023/07/17
5590
html a标签打开新窗口_a标签链接打开新页面
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
4.3K0
Typecho文章链接用新窗口打开
这篇文章是我去年发过的,今天重新搭建Blog刚好需要就找了一下 想着应该会有人需要就重新发一下 用PHP函数实现 文章链接用新窗口打开
洛叶的Blog
2023/04/13
2K0
Typecho文章链接用新窗口打开
Typecho文章内链新窗口打开
我之前找了很多方法发现都是失效的,都是以前的版本的 方法一:添加parseContent() 函数 (推荐) 在主题function.php中添加 function parseContent($obj){ $options = Typecho_Widget::widget('Widget_Options'); if(!empty($options->src_add) && !empty($options->cdn_add)){ $obj->content = str
洛叶的Blog
2023/04/17
1.8K0
from表单提交在新窗口打开
<form action=”URL”  method=”post”  target=”_blank” >
kirin
2021/03/01
2.4K0
Angular 允许ctrl+点击新窗口打开
客户希望使用Ctrl+点击链接在新窗口打开新页面。 经过调查可以实现,具体方式:
mafeifan
2019/05/10
2.5K0
iOS防止在WKWebView中打开Universal Link
在wap中唤起app应用最最广泛的方式并不是Universal Link,而是直接Schema跳转
公众号iOS逆向
2021/08/25
3.1K0
iOS防止在WKWebView中打开Universal Link
typecho1.2 (18.10.23) 新窗口打开链接
本博客主要是面向亚洲访客,简体中文访客。而中文用户是习惯于新窗口打开链接,所以我修改了一下代码。
eallion
2022/12/20
2K0
WordPress 网站如何有选择性的在新窗口打开链接?
WordPress 网站如何有选择性的在新窗口打开链接?在新窗口打开链接有时还是很有必要,下面这个简单实例,是利用 JQuery实现有选择性的在新窗口打开链接的方法。
主机教程网2bcd.com
2022/10/17
1K0
WordPress自定义菜单新窗口打开链接
这里没有单独设置在新窗口打开的选项,那么我们只需要 设置方法: 1、进入“网站后台――外观――菜单”页面,点击右上角的“显示选项”; 2、在“显示菜单高级属性”中勾选“链接目标”等 这样就可以在自定义链接中出现多个选项 勾选完,多出下面几项 这样就可以单独设置某一个菜单新窗口打开啦。 未经允许不得转载:肥猫博客 » WordPress自定义菜单新窗口打开链接
超级小可爱
2023/02/20
1.7K0
ASP.NET 打开新窗口几种方法
ASP.NET打开新窗口方法一:Response.Write(window.open(aaa.asJavaScript
Java架构师必看
2021/03/22
2.1K0
使用 jQuery 在新窗口打开外部链接
我们一般都希望在新窗口打开外部链接,这样用户就不需要离开网站就能访问外部链接,但是如果每个外部链接都手工加上新窗口打开的属性(target="_blank")的话,会让人非常抓狂。使用 jQuery,我们只需要几行代码就能在新窗口中打开外部链接。
Denis
2023/04/15
2.7K0
点击加载更多

相似问题

MYSQL按“差距”填充组

34

使用mysql查找日期差距

33

SQLAlchemy -日期范围差距标识,说明重叠的范围

14

查找mysql时间中的差距

12

PHP Datetime与MySQL datetime

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文