尝试发送ajax帖子请求
function ajaxCall(request_data) {
alert(request_data['table'] + request_data['name'] + request_data['description']);
$.ajax({
type: "POST",
cache: false,
url: "../src/api.php/InsertTo",
data: request_data,
dataType: "json",
contentType: 'application/json',
success: function() {
alert('good');
/* $('form').hide();
$('h3').append("Object Successfully Inserted!");*/
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown + textStatus);
}
});
每次抛出错误,'request_data'是一个对象,url现在返回一个简单的字符串,请找出问题
答案 0 :(得分:1)
您必须使用JSON.stringify()
方法。
data: JSON.stringify(request_data)
此外,contentType
是您要发送的数据类型,因此application / json;默认为application / x-www-form-urlencoded;字符集= UTF-8。
如果您使用application/json
,则必须使用JSON.stringify()
才能发送 JSON 对象。
JSON.stringify()
将javascript对象转换为 json 文本并将其存储在字符串中。
答案 1 :(得分:0)
在request_data上使用JSON.stringify
后,您可以尝试使用以下代码吗?根据文档
“JSON.stringify()方法将JavaScript值转换为JSON字符串,如果指定了replacer函数,则可选择替换值,或者如果指定了replacer数组,则可选地仅包括指定的属性。”
当您使用dataType: "json"
和contentType: 'application/json;'
时,您应该将javascript值转换为正确的JSON字符串。
请在以下链接中找到更多信息
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
function ajaxCall(request_data) {
alert(request_data['table'] + request_data['name'] + request_data['description']);
$.ajax({
type: "POST",
cache: false,
url: "../src/api.php/InsertTo",
data: JSON.stringify(request_data),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: function(data) {
alert('good');
console.log(data); // print the returned object
/* $('form').hide();
$('h3').append("Object Successfully Inserted!");*/
},
error: function(jqXHR, textStatus, errorThrown) {
alert(errorThrown + textStatus);
}
});