2017-04-21 30 views
0

標準免責聲明,我不是很好的JS /前端的東西,所以我可能做一些愚蠢的事情。我很久沒有與AJAX合作過。 好吧,所以我只是在爲正在工作的內部網站充實一些初始ajax。我一直在FF測試大部分,它似乎確定,但是當我在任何其他(真實)的瀏覽器中嘗試它,它會失敗,語法錯誤。這是在Slim Framework中完成的,並使用TWIG進行查看。JSON語法錯誤(即使它在FF中工作 - 我認爲)

$("#id").on('change', function(){ 
    var v = $('#id option:selected').val(); 

    $.ajax({ 
     url: "{{ path_for('inventory.ajax') }}", 
     data: { 
      id: v 
     }, 
     type: "POST", 
     dataType : "json", 
    }) 

    .done(function(result) { 
     $.each(result,function(key, val){ 
      var newA = JSON.stringify(val.property.property); 

      $(".ajax").append(JSON.parse(newA) + ", "); 
     }); 
    }) 


    .fail(function(xhr, status, errorThrown) { 
     alert(errorThrown); 
     console.log("Error: " + errorThrown); 
     console.log("Status: " + status); 
     console.dir(xhr); 
    }) 
}); 

我的PHP代碼很簡單:

public function ajax_getProps($request, $response) { 
    $id = $request->getParam('id'); 

    $propertiesList = $this->c->helpers->getPropertyList($id); 

    echo json_encode($propertiesList); 
} 

現在,就像我說的,在FF它的工作原理,但我有我爲什麼必須字符串化,然後解析東西只是輸出不同的問題,它。 當我在Chrome或Edge上運行它時 - IE當然毫無用處,我不在乎,我收到以下消息: 語法錯誤:意外令牌<在位置0的JSON中。 我讀過通常表示的意思您在期待純JSON時返回HTML,但我不是。我是嗎?如果我註釋掉和它下面的一個,我還是得到警報的錯誤消息,但它不會在控制檯中顯示

console.log("Error: " + errorThrown); 

: 錯誤似乎指向以下行。

我從開發工具中檢索到JSON,並在JSONLint中測試它,它說它是有效的。

誰能告訴我這裏發生了什麼?

+0

告訴我們你的一些數據,只是json也許?儘量不要JSON.parse值 –

回答

0

......

那麼我想出了我正在做的愚蠢的事情。我沒有在其他瀏覽器上登錄,這是一個使受保護的路由,但主頁呼叫始發的ajax電話是不是...

相關問題