ios - JS 函数中的 JQuery ajax 调用在 iOS 上失败,但在 Windows 10 pc 上运行良好
问题描述
在这件事上绞尽脑汁——我想我会向专家寻求帮助......我下面代码的要点是调用一个 php 函数(通过 ajax POST),它在注册请求时更新 MySQL 表被管理员拒绝。
在 Windows 10 中执行时,一切都按预期工作。alert("A problem has occurred with your rejection at tec_regadmin. " + teststat2 + " Please copy this error and contact your abc administrator for details.");
但在 iOS 上,它会抛出在 ajax 调用 ( )的 .fail 函数中发现的错误警报。此外,teststat2 在 iOS 上显示为 [object Object]。另一个转折 - MySQL 表成功更新以显示请求被拒绝。代码片段如下:
带有对 ../services/ajax_reject_registrant.php 的嵌入式 ajax 调用的 JS 函数:
function regreject(Select, Directory_ID, Log_In, Gender_sex, First_Name, Last_Name) {
console.log("Made it into the regreject function");
var jQ13 = jQuery.noConflict();
jQ13(document).ready(function () {
jQ13.ajax({
cache: false,
headers: { "cache-control": "no-cache" },
url: '../services/ajax_reject_registrant.php',
type: 'POST',
dataType: 'json',
data: { Selected: Select, Directory: Directory_ID, Login: Log_In, Gender: Gender_sex, FirstName: First_Name, LastName: Last_Name }
})
.done(function (jqXHR, textStatus) {
// Get the result
var teststat = textStatus;
var teststat2 = jqXHR;
console.log("ajax reject success response data = " + teststat);
console.log("ajax reject success response text = " + teststat2);
alert("Registrant has been disabled in the database.");
location.reload();
return;
})
.fail(function (jqXHR, textStatus) {
// Get the result
var teststat = textStatus;
var teststat2 = jqXHR;
console.log("ajax reject failure response data = " + teststat);
console.log("ajax reject failure response text = " + teststat2);
alert("A problem has occurred with your rejection at tec_regadmin. " + teststat2 + " Please copy this error and contact your abc administrator for details.");
location.reload();
return;
});
});
};
从 ajax 调用的 PHP 脚本 (../services/ajax_reject_registrant.php):
<?php
//New Registrant Reject script
//Called from tec_regadmin.php
//Last Updated 2020/12/09
if ( isset($_POST['Selected']) ) {
require('../tec_dbconnect.php');
include('../includes/event_logs_update.php');
include('tec_sendmail.php');
$Selected2 = $_POST['Selected'];
$Directory2 = $_POST['Directory'];
$Login2 = $_POST['Login'];
$Gender2 = $_POST['Gender'];
$FirstName2 = $_POST['FirstName'];
$LastName2 = $_POST['LastName'];
$text = array();
$regrejectloginquery = "UPDATE " . $_SESSION['logintablename'] . " SET active = '2'" . " WHERE login_ID = '". $Login2 . "'";
$regrejectlogin = $mysql->query($regrejectloginquery) or die("A database error occurred when trying to reject new Registrant info into Login table. See ajax_reject_registrant.php. Error:" . $mysql->errno . " : " . $mysql->error);
eventLogUpdate('admin_update', "Admin ID: " . $_SESSION['user_id'], "Registrant Reject", "LoginID: " . $Login2 . " - Directory entry: " . $Directory2);
$success = 'Reject Success';
header('Content-type: application/json');
echo json_encode($success);
}
else{
$failed = 'Reject Failed';
header('Content-type: application/json');
echo json_encode($failed);
}
?>
如果您有任何问题,请告诉我。任何建议都会很棒!谢谢!!!
解决方案
[解决了]
PHP 表单用于调用上述函数 (rereject),但缺少一个操作语句(显示为action=''
)。通过修改操作以包含javascript:void(0); 问题自行解决。我需要做的就是将操作更改为action="javascript:void(0);"
原始 PHP 表单,现在 iOS 是一个快乐的露营者!
我必须思考的最后一个问题是“为什么这是 iOS 的问题??” 想知道我是否会发现。
推荐阅读
- angular - 在浏览器控制台中无法获得 Angular 编译器错误
- javascript - P5 - 从矩阵加载数据
- excel - 在 .csv 文件中的选定列上设置过滤器
- r - geom_raster 如何处理重复填充?
- javascript - 按键复位功能
- html - 移动版网站上的额外空白
- java - 素数测试初学者Java
- java - Java ActionListener 在函数调用之前不执行第一个操作
- google-apis-explorer - ListDirectoryPeople 没有显示大多数联系人的姓名?
- python - Python paramiko.ssh_exception.SSHException:没有现有会话