gpt4 book ai didi

javascript - 为什么我的 Ajax 请求在我的数据类型为 : "Content-Type: application/x-www-form-urlencoded"? 时发送 "JSON"

转载 作者:行者123 更新时间:2023-11-28 04:20:03 24 4
gpt4 key购买 nike

当我使用以下响应按钮单击时,它会调用(通过使用 console.log() 验证),但是,它生成的 http 请求具有 header “Content-Type:application/x- www-form-urlencoded;字符集=UTF-8\r\n”。不应该是json吗?

我在 Ubuntu 上使用谷歌浏览器 34.0.1847.132。 Jquery 版本 1.8.3。

提前致谢!

function action (mode) {
console.log("action called with mode " + mode);
$.ajax({
type: "POST",
url: '/saas.php',
data: {
action: (mode == 1)? "start" : "stop"
},
dataType: "json",
success: function(data) {
//alert(data);
if (data.msg != null) {
alert(data.msg);
} else {
if (mode == 1) {
document.getElementById('createLoadGen').innerHTML = 'creating loadGen...';
setTimeout(checkStatus, 1000);
}
}
}
});
if (mode == 2) {
document.getElementById('createLoadGen').innerHTML = '<button onclick="action(1)" >create LoadGen</button>';
document.getElementById('deleteLoadGen').style.display = 'none'
}
}

最佳答案

一般不会。 请求 中的 Content-Type header 描述了请求 正文中的内容,而不是响应 中预期的内容类型(描述预期的响应格式是 Accept header 的工作)。

默认情况下,jQuery 将使用 HTML 表单使用的标准编码对数据进行编码。

现在,服务器可能希望将请求格式化为 JSON,在这种情况下,您需要对 jQuery 调用进行以下修改:

  1. 说你正在发送 JSON
  2. 将您发送的内容编码为 JSON,而不是让 jQuery 自行编码

这样的:

  data: JSON.stringify({
action: (mode == 1)? "start" : "stop"
}),
contentType: "application/json",

sass.php 将必须 parse the JSON request而不是让 PHP 在后台不可见地执行它,只是从 $_POST 中提取数据。

关于javascript - 为什么我的 Ajax 请求在我的数据类型为 : "Content-Type: application/x-www-form-urlencoded"? 时发送 "JSON",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23857707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com