Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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
Javascript Json响应错误Json.parse:意外的数据结束错误_Javascript_Php_Jquery - Fatal编程技术网

Javascript Json响应错误Json.parse:意外的数据结束错误

Javascript Json响应错误Json.parse:意外的数据结束错误,javascript,php,jquery,Javascript,Php,Jquery,嗨,朋友们,我有一个奇怪的错误,我正在使用ajax从使用php查询的其他文件中获取数据。它返回一个json_编码,但json.parse有一个问题。。。。。。 这是我的密码 $.get("pgs/dpg.php",{pg:"18", type:"rec", obs_code:$("#obs_code").val(),lib_code:$("#lib_code").val()},function(data){ obj = JSON.parse(data); $("#obs_focused").v

嗨,朋友们,我有一个奇怪的错误,我正在使用ajax从使用php查询的其他文件中获取数据。它返回一个json_编码,但json.parse有一个问题。。。。。。 这是我的密码

$.get("pgs/dpg.php",{pg:"18", type:"rec", obs_code:$("#obs_code").val(),lib_code:$("#lib_code").val()},function(data){
obj = JSON.parse(data);
 $("#obs_focused").val(obj.obs_focused);
 $("#obs_projects").val(obj.obs_projects);
 });
这是我的php文件

  switch($_REQUEST['type']){
  case 'rec' :

   $sql=mysql_query("select obs_attendance_punctuality,  obs_general_fitness,  obs_listening, 
          obs_independence, obs_special_mention, obs_participation,
          obs_responsibility, obs_awards, obs_nobooks, obs_focused, obs_care_env, obs_projects,
          obs_hand_control, obs_home_read, obs_workshop_parents, obs_workshop_child,
          obs_field_trips, obs_homework, obs_eating, obs_batroom, obs_relation, obs_themes, 
          obs_courtesy, obs_instructions, obs_initiative, obs_alertness, obs_descipline, obs_assembly,
          obs_interest, obs_grade, obs_undergarments, obs_general_hygiene, ".$xtflds."
          obs_clarity, obs_clarity_rem, obs_tone_pitch, obs_tone_pitch_rem, obs_confidence,
          obs_confidence_rem, obs_hand_coordination, obs_hand_coordination_rem, obs_eye_coordination,
          obs_eye_coordination_rem, obs_body_language, obs_body_language_rem, obs_enthusiasm_interest,
          obs_enthusiasm_interest_rem, obs_facial_expressions, obs_facial_expressions_rem,
          obs_content, obs_content_rem, obs_vocabulary, obs_vocabulary_rem, obs_body_posture,
          obs_body_posture_rem, remarks
          from obsr
          where obs_code =".$_REQUEST['obs_code']);

          $data=mysql_fetch_array($sql);
          echo json_encode($data);


  return; 
  break;
        }
请帮我解决这个问题

console.log(数据)

正在输出这个

Uncaught SyntaxError: Unexpected end of input 
console.log(data) 
ReferenceError: data is not defined
message: "data is not defined"
stack: (...)
get stack: function () { [native code] }
set stack: function () { [native code] }
__proto__: Error

它不起作用

在JavaScript中,使用
$.getJSON()
而不是
$.get()

在PHP中,请确保使用

header('Content-type: application/json');
如果您已经使用了它,并且您的php文件以前没有输出任何其他内容

echo json_encode($data);

,它必须工作,即使$data恰好为null…:-)

您必须使用mysql\u fetch\u assoc而不是mysql\u fetch\u数组。因为mysql_fetch_数组只返回值数组,而不是键值对

并确保在回显输出后没有打印的语句。因此,必须使用exit()或die()而不是“return”语句


并确保php代码正确打印编码的json。你可以检查这个,Fixbug或Chrome开发者工具。

我们需要看看PHP文件输出的东西,它可能在某种程度上是无效的。此外,我认为使用<代码> JSON.PARSE()<代码>是不安全的,而不需要将Ajax请求的数据类型专门设置为<代码>文本< /代码>。最好使用
$.getJSON
而不要使用
JSON.parse()
write console.log(数据)并检查控制台,向我们显示JSON字符串php文件返回一个数组…为什么它无效….???再次,我们需要查看它。然后我们可以告诉您它有什么问题;而且,我同意其他评论,请花几分钟时间安装和学习浏览器调试器(firebug,chrome developer tool,…),请看我刚才添加到答案中的第一行;这可能是您的问题的解决方案:-)通过这种方式………..$.getJSON(“pgs/dpg.php”,“pg:”18“,键入:“rec”,obs_代码:$(“#obs_代码”).val(),lib_代码:$(“#lib_代码”).val()},函数(数据){obj=JSON.parse(数据);//警报(obj);$(“#obs#准时性”).val(obj.obs_考勤_准时);$(“#obs_一般_适合度”).val(obj.obs_一般_适合度);});尝试写入console.log(数据);在obj=JSON.parse(数据)之前;因此,我们可以看到我们在PHP中收到的内容…@user3091928,您在chrome开发者工具中检查过XHR响应正文了吗?如果是,则发布该响应正文。这是响应未捕获类型错误:无法读取null的属性“obs_attention_准时性”