getJSON 给出 statut 200 但没有值
getJSON gives statut 200 but no value
我发现了很多关于这个问题的问题,但是 none 的解决方案似乎对我有帮助。
我有一段 PHP 创建 JSON 对象的代码,我的页面基本上是这样的:
<?php
$supps = ...; /* mysqli class that gets the values */
header("Content-type: text/javascript");
echo json_encode( $supps );
?>
转到页面 feed.php?load&menu_id=2
时显示对象:
[{"id":32,"name":"Test 4","weight":15},{"id":33,"name":"Test 5","weight":25},{"id":34,"name":"Test 6","weight":35}]
运行 通过 JSONlint validator 给我这个(有效!)结果
[
{
"id": 32,
"name": "Test 4",
"weight": 15
},
{
"id": 33,
"name": "Test 5",
"weight": 25
},
{
"id": 34,
"name": "Test 6",
"weight": 35
}
]
现在我正在尝试使用 JQuery 函数(基于从表单中选择的值)加载此数据。我试过多段代码:
/* Try 1 */
var menuID = $('[name=menu]:checked').val();
$.getJSON("feed.php?load&menu_id="+menuID, function(json) {
console.log(json);
});
/* Try 2 */
var menuID = $('[name=menu]:checked').val();
$.ajax({
url: "feed.php?load&menu_id"+menuID,
dataType: "JSON",
success: function(json){
console.log(json);
}
})
/* Try 3 */
var menuID = $('[name=menu]:checked').val();
$.getJSON("feed.php?load&menu_id="+menuID, function(data) {
console.log(data);
}).done(function(xhr) {
console.log(xhr)
});
/* Try 4 */
var menuID = $('[name=menu]:checked').val();
$.ajax({
type: "GET",
url: "feed.php?load&menu_id="+menuID,
async: false,
dataType: "json",
success: function(data){
console.log(data);
}
});
每次尝试都会在控制台中给出相同的结果:
GET http://.../feed.php?load&menu_id=1 200 OK 51ms
但控制台中没有任何对象。
我做错了什么?
您的 URL 包含一个编码的符号:
feed.php?load&menu_id="+menuID
&
在 URL 中使用时不被解码。您的查询字符串已损坏。
我发现了很多关于这个问题的问题,但是 none 的解决方案似乎对我有帮助。
我有一段 PHP 创建 JSON 对象的代码,我的页面基本上是这样的:
<?php
$supps = ...; /* mysqli class that gets the values */
header("Content-type: text/javascript");
echo json_encode( $supps );
?>
转到页面 feed.php?load&menu_id=2
时显示对象:
[{"id":32,"name":"Test 4","weight":15},{"id":33,"name":"Test 5","weight":25},{"id":34,"name":"Test 6","weight":35}]
运行 通过 JSONlint validator 给我这个(有效!)结果
[
{
"id": 32,
"name": "Test 4",
"weight": 15
},
{
"id": 33,
"name": "Test 5",
"weight": 25
},
{
"id": 34,
"name": "Test 6",
"weight": 35
}
]
现在我正在尝试使用 JQuery 函数(基于从表单中选择的值)加载此数据。我试过多段代码:
/* Try 1 */
var menuID = $('[name=menu]:checked').val();
$.getJSON("feed.php?load&menu_id="+menuID, function(json) {
console.log(json);
});
/* Try 2 */
var menuID = $('[name=menu]:checked').val();
$.ajax({
url: "feed.php?load&menu_id"+menuID,
dataType: "JSON",
success: function(json){
console.log(json);
}
})
/* Try 3 */
var menuID = $('[name=menu]:checked').val();
$.getJSON("feed.php?load&menu_id="+menuID, function(data) {
console.log(data);
}).done(function(xhr) {
console.log(xhr)
});
/* Try 4 */
var menuID = $('[name=menu]:checked').val();
$.ajax({
type: "GET",
url: "feed.php?load&menu_id="+menuID,
async: false,
dataType: "json",
success: function(data){
console.log(data);
}
});
每次尝试都会在控制台中给出相同的结果:
GET http://.../feed.php?load&menu_id=1 200 OK 51ms
但控制台中没有任何对象。
我做错了什么?
您的 URL 包含一个编码的符号:
feed.php?load&menu_id="+menuID
&
在 URL 中使用时不被解码。您的查询字符串已损坏。