如何在ajax post方法中发送json请求

Posted

技术标签:

【中文标题】如何在ajax post方法中发送json请求【英文标题】:how to send json request in ajax post method 【发布时间】:2015-10-03 20:45:23 【问题描述】:

我正在尝试在 ajax 调用中发布 json 请求,但我没有收到来自请求的任何成功响应。

请在下面找到我的代码:我在这里做错了什么:

它点击了 url,我得到 200 ok 状态,但它总是出现错误情况..

有人可以帮忙吗,我需要改变什么才能工作:

我尝试了 data: JSON.stringify(key:"value",key1: "value1") - 但这也没有帮助

<script type="text/javascript">
function JSONTest() 

 $.ajax(
    url: 'http://localhost:8080/test/toSend',
    dataType: 'json',
    type: 'post',
    contentType: 'application/json',
    data: 'key:"value",key1: "value1"',
    processData: false,
    success: function( data, textStatus, jQxhr )

        alert("success..." +data);
        $('#response pre').html( JSON.stringify( data ) );
    ,
    error: function( jqXhr, textStatus, errorThrown )
        console.log( errorThrown );
    
);   

    

</script> 

【问题讨论】:

请提供数据输出和/或errorThrown。 我收到此错误 -Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at localhost:8080/test/toSend -Reason: CORS header 'Access-Control-Allow-Origin' missing) . 【参考方案1】:

要使用JSON.stringify(key:"value",key1: "value1"),您需要加载此脚本:

JSON-js

【讨论】:

【参考方案2】:

$.ajax 不是作为一个承诺连接的!使用下面的代码!

function JSONTest() 
    $.ajax(
        url: 'http://localhost:8080/test/toSend',
        dataType: 'json',
        type: 'post',
        contentType: 'application/json',
        data: 'key:"value",key1: "value1"',
        processData: false
    ).done(function (data, textStatus, jQxhr) 
        $(this).addClass("done");
    ).fail(function (jqXhr, textStatus, errorThrown) 
        console.log("error errorThrown");
    );
;

【讨论】:

谢谢布赖恩!我使用了上面的代码,http请求不去,直接报错,我在控制台没有看到任何错误。 你在执行 JSONTest 吗?您收到的错误是什么?只是.error? 抱歉,已更新! .error 已弃用并替换为 .fail 如果我删除 contentType: 'application/json' - 请求继续并在 firebug xhr 中显示 200 ok 状态,但它再次只对错误块进行操作 尝试更新,应该可以解决问题。我没有删除 contentType,但在您确认后会删除。

以上是关于如何在ajax post方法中发送json请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AJAX POST 请求后解析来自服务器的 JSON 响应?

如何使用 C# 在 POST 请求中发送 json 数据 [重复]

如何通过 POST (Ajax) 发送 JSON 数据并从 Struts 2 操作接收 JSON 响应

ajax方法POST后如何获取JSON响应

AJAX Post 请求错误:“不能为空”,[验证::required] 在 POST 正文中发送 JSON 对象时

带有json响应的jQuery ajax请求,如何?