jquery ajax发布请求失败

时间:2017-09-16 11:11:06

标签: javascript jquery ajax

尝试发送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现在返回一个简单的字符串,请找出问题

2 个答案:

答案 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);
    }
});