未捕获的TypeError:不能使用'in'运算符来搜索false中的'length'

时间:2016-01-19 14:10:09

标签: javascript jquery

P.S-我知道有人问过这个问题。但是答案太复杂了我无法理解,除了我是JavaScript / jQuery 2.1.4的新手。

每当我启动Web应用程序项目时,都会发生此错误。但是关于这个错误的事情是它没有阻止函数执行所以它很好。无论如何我不想看到这个错误,因为我希望我的应用程序没有错误;所以我追查它,这是我的代码:

//populate locations select options
$(document).ready(function(){
    $.ajax({           
        type: "GET",
        url: "asset_management/poploc", //the script to call to get data          
        data:'',                        //you can insert url argumnets here to pass to api.php
        dataType: 'json',               //data format      
        success: function(data){        //on recieve of reply
          $.each(data, function(index,item){
                $("#pop_loc").append("<option value=\""+item.location_id+"\">"+item.location_name+"</option>");
               });
        }

    });
});

请检查。

1 个答案:

答案 0 :(得分:1)

这是因为在文本字符串上$.each无法正常工作。您需要将data解析为JSON:

success: function(data) {
  // Add this following line.
  data = JSON.parse(data);

你也可以摆脱:

dataType: 'json',

确保在$.each()之前进行验证:

success: function(data) {
  // Add this following line.
  data = JSON.parse(data);
  // validate here
  if (data.length > 0) {
    $.each(data, function(index, item) {