javascript - 作为 Javascript 对象而不是 JSON 接收的 jQuery ajax 响应
问题描述
我遇到了麻烦。
在 file.js 中编写以下代码。
function fleet_vssl_list(callbackFunc){
func_name = "Get_Vssl_Fleet";
let responseObject = null;
$.ajax({
url: 'get_rank_vssl_fleet.php',
type: 'POST',
data: `func_name=${func_name}`,
success: function(responseObject){
console.log(responseObject);
responseObject = JSON.parse(responseObject);
console.log(responseObject);
vssl_fleet = responseObject.vssl_fleet;
}
});
}
至于我写的PHP文件如下。
function vssl_list(){
$conn = StartConn();
$qry = ("select vssl_name from vessel");
$qry_exec = mysqli_query($conn, $qry);
if (mysqli_num_rows($qry_exec) > 0){
$results = mysqli_fetch_all($qry_exec, MYSQLI_ASSOC);
foreach ($results as $my_row){
$vssl[] = $my_row["vssl_name"];
}
StopConn($conn);
echo json_encode(
array(
'vssl' => $vssl
)
);
}
else{
$results = "No Vessel Data Found !!!";
StopConn($conn);
echo json_encode(
array(
'vssl' => $results
)
);
}
}
在控制台中,我收到下图。 上一个如果在 JSON.parse 之前,下一个在 JSON.parse 之后
在同一个 .js 文件中,我编写了另一个函数,如下所示。
function insert_dept_crew(){
let responseObject = null;
$.ajax({
url: 'insert_update_delete_obd_data.php',
type: 'POST',
dataType: 'JSON',
data: data_string,
success: function(responseObject){
//responseObject = JSON.parse(responseObject);
console.log(responseObject);
},
});
}
至于PHP,我写了如下只是为了测试结果。
function insert_new(){
$func_name = "Insert_Departure_Crew";
$cdc = 12345;
$rank = "MST";
$rank_sd = "MST";
$vssl_id = 1;
$fleet_id = 1;
$dept_dt = "20200225";
echo json_encode(
array(
'func_name' => $func_name,
'cdc' => $cdc,
'rank' => $rank,
'rank_sd' => $rank_sd,
'vssl_id' => $vssl_id,
'fleet_id' => $fleet_id,
'dept_dt' => $dept_dt
)
);
}
我已经阻止了代码行 JSON.parse 并且我在控制台中收到如下。 我可以将其视为 Javascript 对象
如果我在 insert_dept_crew 函数中取消阻止 JSON.Parse,则会出现错误。当我检查我的 PHP 文件时,返回的是可靠的 JSON,如下所示。
{"func_name":"Insert_Departure_Crew","cdc":12345,"rank":"MST","rank_sd":"MST","vssl_id":1,"fleet_id":1,"dept_dt":"20200225"}
请帮助我解决这种不一致。
解决方案
明白了……我想通了。感谢@freedomn-n 和@RoryMcCrossan,我注意到我在第二个jQuery 中使用了dataType,因为我认为它是用来发送数据的。但是 jQuery 期望返回什么类型的数据。
推荐阅读
- java - Java获取余数与位移
- python-3.x - Visual Studio Code 未更新 Python 解释器
- c# - C# .NET Core ReadAsStringAsync() 抛出 System.OperationCanceledException
- telegram-bot - bot api 是否支持创建本机民意调查?
- python - 在 NER 移除 B 和 I 标记
- qt - QML:如何为所有菜单添加阴影?
- java - Java split() 方法无法区分“.” 和 Windows 上的“-”
- reactjs - 如何使手风琴第一个选项卡默认打开 React JS
- excel - EXCEL VBA:如何以编程方式按名称更改图表的 .Placement 属性
- python - Python多处理池:限制最大运行时间和进程数