javascript - Ajax 请求适用于移动 Safari 控制台,但不适用于代码
问题描述
我有以下执行简单请求的 jQuery 代码:
$.ajax({
type: "POST",
url: "/wp-admin/admin-ajax.php",
headers: {
"pragma": "no-cache",
"cache-control": "no-cache",
},
data: payload,
function(response) {
console.log('Got this from the server: ' + response);
}
});
现在,当我在任何桌面浏览器上运行此代码时,它似乎可以完美运行。但是,它仅在移动 Safari 浏览器上失败。有趣的是,如果我通过移动 Safari 控制台执行它,它可以完美运行。
检查网络连接后,我发现移动 Safari 浏览器似乎没有正确设置请求标头。具体来说,以下五个请求标头在其他浏览器中可见(以及在控制台中,当我在那里执行它时),但是当请求来自我的 iPhone 上的正常按钮单击时,神秘地丢失了:
-H 'Host: abc.com' \
-H 'Accept-Language: en-us' \
-H 'Accept-Encoding: br, gzip, deflate' \
-H 'Content-Length: 187' \
-H 'Connection: keep-alive' \
我尝试在代码中手动设置这些标头,但 Safari 抱怨“设置不安全标头”的安全问题。对于它的价值,我使用的是 JQuery 3.4.1。
有人可以帮我弄清楚如何使这个请求在移动浏览器上工作吗?
解决方案
推荐阅读
- python - Pandas - 从线程返回数据帧并附加结果
- javascript - 承诺在 IF 语句之前不解决
- c++ - Straight forward example using CryptoAPI Next Generation (CNG) to encrypt data
- c - 如何使用该函数访问字符串的某些索引?
- ios - Swift:即使使用串行队列进行突变,具有存储属性的枚举也不是线程安全的
- azure - 使用 Chrome Devtools 捕获 WebSocket 音频文件
- regex - 正则表达式匹配 Kusto
- apache-superset - 在 Superset 1.1.0 中 - 限制对虚拟数据集的访问?
- rust - 在 Rust 中收获子进程,如何通过 PID 查找子进程?
- javascript - 如何用道具制作条件并反应动态主题?