標準免責聲明,我不是很好的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中測試它,它說它是有效的。
誰能告訴我這裏發生了什麼?
告訴我們你的一些數據,只是json也許?儘量不要JSON.parse值 –