【发布时间】:2014-07-14 11:51:54
【问题描述】:
当我使用以下响应按钮单击时,它会调用(通过使用 console.log() 进行验证),但是,它生成的 http 请求具有标题“Content-Type: application/x- www-form-urlencoded; charset=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'
}
}
【问题讨论】:
-
你混淆了两件事。 application/x-form 只是 MIME 类型。这就像发送数据的使用标准。 Json 是一种以 mime 类型发送和包装的数据格式。另外,我建议您查看 jquery 手册。 dataType 没有定义数据的发送方式。它只是告诉 jquery 你期望一个 JSON-String 作为答案。
-
@newBee — 错误。
application/x-www-form-urlencoded和application/json是用于描述不同类型内容的不同 MIME 类型。发送包裹在 URL 编码数据中的 JSON 是很不明智的。 -
但是他没有发送 json 格式的数据。因此,mime 类型很好。
-
像往常一样,阅读documentation 实际上会有所帮助:"
dataType:您希望从服务器返回的数据类型。如果没有指定时,jQuery 将尝试根据响应的 MIME 类型推断它 [...]"
标签: javascript jquery html