jquery和ajax将json数据发送到服务器

时间:2015-03-24 16:55:52

标签: jquery ajax json

我想通过ajax将json数据发送到服务器,但它不起作用。用firefox和chrome浏览器测试。与Tornado互动

$.ajax({
    type: "POST",
    url: url,
    processData: false,
    contentType: 'application/json',
    data: json_data
});

但如果我在里面添加成功属性。有用。我不明白原因

工作版:

$.ajax({
    type: "POST",
    url: url,
    processData: false,
    contentType: 'application/json',
    data: json_data,
    success: function(response){
        console.log(response);    
    }
});

然后, 我用完全取代了成功。它再也不起作用了。 为什么呢?

complete: function(xmlHttp){
    if(xmlHttp.status.toString()[0]=='3'){
        top.location.href = xmlHttp.getResponseHeader('Location');}

如果您需要更多信息,请与我们联系。 感谢

2 个答案:

答案 0 :(得分:1)

看起来您的问题可能源于您决定成功的方式。

我将您的代码放入以下jfiddle并将其发布到他们的echo服务中而不会出现问题:

$.ajax({
    type: "POST",
    url: "/echo/json/",
    processData: false,
    contentType: 'application/json',
    data: {a: "test"},
    success: function ( data, textStatus, jqXHR ) {
        alert("Succeeded with status: " +textStatus+". Data returned: "+data);

    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert("Failed with status: "+textStatus+", errorThrown: "+errorThrown);

    },
    complete: function (jqXHR, textStatus) {
        alert("Completed with status: "+textStatus);

    }
});

答案 1 :(得分:-1)

像这样从JSON发布您的数据



var myvalue = 'test';

$.ajax({
    type: "POST",
    url: "/echo/json/",
    data: {getval: myvalue},
    success: function (data) {
        alert("Successfully posted");

    }
       
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

Jsfiddle demo here