Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我来自CodeIgniter的JSON响应在JavaScript中不可读?_Php_Jquery_Json_Ajax_Codeigniter - Fatal编程技术网

Php 为什么我来自CodeIgniter的JSON响应在JavaScript中不可读?

Php 为什么我来自CodeIgniter的JSON响应在JavaScript中不可读?,php,jquery,json,ajax,codeigniter,Php,Jquery,Json,Ajax,Codeigniter,我使用CodeIgniter控制器将数据存储在“响应”中,该控制器: { "ok": false, "messages": { "cgusrnm": "<p class=\"text-danger\">The Full Name field is required.<\/p>", "cgnnm": "<p class=\"text-danger\">The Nick Name field is required.<\/p>"

我使用CodeIgniter控制器将数据存储在“响应”中,该控制器:

{
  "ok": false,
  "messages": {
    "cgusrnm": "<p class=\"text-danger\">The Full Name field is required.<\/p>",
    "cgnnm": "<p class=\"text-danger\">The Nick Name field is required.<\/p>",
    "cgeml": "<p class=\"text-danger\">The Email Address field is required.<\/p>",
    "cgunm": "<p class=\"text-danger\">The User Name field is required.<\/p>",
    "cgpsd": "<p class=\"text-danger\">The Password field is required.<\/p>",
    "ccgpsd": "<p class=\"text-danger\">The Confirm Password field is required.<\/p>",
    "cgcnm": "<p class=\"text-danger\">The Company Name field is required.<\/p>",
    "cgadr": "<p class=\"text-danger\">The User Address field is required.<\/p>",
    "cgct": "<p class=\"text-danger\">The City field is required.<\/p>",
    "cgcnt": "<p class=\"text-danger\">The Country field is required.<\/p>",
    "cgzn": "<p class=\"text-danger\">The State field is required.<\/p>",
    "cgzc": "<p class=\"text-danger\">The Zip Code field is required.<\/p>",
    "cgpn": "<p class=\"text-danger\">The Phone Number field is required.<\/p>",
    "cgsn": "<p class=\"text-danger\">The Skype Name field is required.<\/p>",
    "pm": "<p class=\"text-danger\">The Payment Method field is required.<\/p>",
    "cgpeml": "<p class=\"text-danger\">The Email Address field is required.<\/p>"
  }
}

消息不是数组,而是对象。JSON数组看起来像{message:[“a”,“b”]}

即使数据类型是JSON,
响应
变量的类型仍然是字符串。尝试添加
response=JSON.parse(response)
将字符串转换为JavaScript对象。

可能是
response.data.ok
console。记录
response
的值,并调查其结构。我浏览了本教程。我不是在看YouTube教程来回答这个问题。使用
console.log
查看
response
的值。相应地调整代码。我不清楚。为什么不能使用我的代码?我非常感谢你,因为你把它叫做
datatype
,而不是
datatype
<代码>数据类型
不起任何作用。您可以去掉
JSON.parse
并将其更改为
dataType
$('#form_user').submit(function(e) {
  e.preventDefault();

  var me = $(this);

  $.ajax({
    url: me.attr('action'),
    type: 'post',
    data: me.serialize(),
    datatype: 'json',
    success: function(response) {
      if (response.ok == true) {
        alert('response');
      } else {
        $.each(response.messages, function(key, value) {
          var element = $('#' + key);
          element.after(value);
        });
      }
    }
  });
});