如何在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 响应