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

虽然响应中的json格式正确,但Ajax json始终返回错误

龚联
2023-03-14

我一直试图用CakePHP 1.3实现ajax登录。我有一个简单的用户名/通行证登录弹出。

以下是我的视图/元素/登录。ctp:

echo $this->Form->create('User', array('url'=>array('controller'=>'users','action'=>'login'), 'id'=>'user_login'));
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end('Login'));

以下是在我的控制器控制器/users_controller.php

public function ajax_login() {

    $response = array('success'=>false);

      if($this->RequestHandler->isPost()) {
         if($this->Auth->login()) {
            $response = array('success'=>"true");
         } else {
            $response = array('success'=>false);
         }
      }
        $this->set('response', $response);

}

上述控制器的视图位于视图/用户/ajax_login.ctp只有这一行:

echo $javascript->object(isset($response) ? $response : array());

My Ajax具有以下代码:

function login_user(){

    var username = $("#UserUsername").val();
    var password = $("#UserPassword").val();

    if(username == "" || username == null || password == "" || password == null){
        alert("Please enter a username and password");
        return false;
    }

    $.ajax({
        url:"/users/ajax_login",
        type:"POST", 
        data:$('#user_login').serialize(), 
        dataType:"json",
        async: true,
    success: function() { console.log("success"); }, 
    error: function(msg) { console.log(msg); }
    });

    return false;
}

现在,一切似乎都是完美的工作,然而,这总是失败到“错误”回调,我不知道为什么。我读过下面所有关于stackoverflow的链接,它们似乎都不是问题所在!

当JSON有效时,通过$. ajax请求一个json文件时,会出现奇怪的JSON行为?struts2json_encode创建格式错误的JSON(具有额外隐藏字符)php的Ajax错误结果json_encode不返回正确的json编码字符串

我唯一怀疑的是,当我读取错误的console.log(msg)时,我得到了正确的超文本标记语言响应{成功: true},格式正确...但是...“响应文本”我得到这样的东西:

responseText:“{”success:true}

所以基本上我猜是这样的“

共有1个答案

傅元章
2023-03-14

实际上,字符串

  1. 你使用什么布局来呈现这个?尝试调试($this-

我猜检查布局并将其设置为ajaxempty将解决您的问题。

 类似资料:
  • 问题内容: 我通过jQuery AJAX将一些数据发布到PHP脚本中,并且一切正常执行,但是返回了404错误。在我的Firebug控制台中,PHP脚本的响应是正确的。我不了解该脚本如何响应,它仍然会引发404错误。jQuery的“错误”回调方法将触发,而“成功”方法则不会触发。 PHP脚本执行的所有语句都能正常工作,因为我可以看到数据库正在更新等。 我在Dreamhost托管的WordPress

  • 我是C++的新手,但我需要用OpenCV做一个项目。我已经关闭了OpenCv-4.5.2和opencv_contrib,我使用的是Visual 2019。我使用了cmake,没有错误。 然后,在我所包含的项目中,“C:\opencv\opencv_lib\install\include”目录用于我所包含的链接器的C++附加包含目录,“C:\opencv\opencv_lib\install\x64

  • 我想知道当服务器端发生错误时返回是否正确(错误详细信息将包含在响应主体中)。 例子: 我们正在发送 这是不是正确的行为?我们是否应该将状态代码更改为200以外的值?

  • 目标: 使用正则表达式仅显示路径的实际文件夹名称。例如, 应该减少到 应该有进一步的规则来防止用户将驱动器作为文件夹输入。 问题: > 条件返回,我不知道为什么。 的行抛出了一个 ArgumentException 告诉我(粗略翻译)在分析序列 时,“有一个未完成的 [] 子句”。 我的想法: > 我选择的任何编辑器都将“C:\”标记为指定表达式的匹配项。 中的双反斜杠可能被视为实际转义右方括号,

  • 我想知道我是否以正确的方式编写了泽西客户端代码。 登录页面应该在输入正确的用户名和密码后重定向到主页,服务器端返回一个空字符串()。如果其中一个不正确,服务器端代码返回。 页面功能运行良好,但当我使用正确的用户名和密码对使用客户端代码进行测试时,它返回,响应返回200OK。下面是我的客户端代码。 我怀疑用户名和密码没有按HTML文件要求的正确输入位置提交。下面是我的HTML文件块。

  • 本文向大家介绍解决Django响应JsonResponse返回json格式数据报错问题,包括了解决Django响应JsonResponse返回json格式数据报错问题的使用技巧和注意事项,需要的朋友参考一下 代码 return JsonResponse({"name": "tom"}) 报错: TYPEERROR: In order to allow non-dict objects to be