我正在提交数据类型为json的发布请求。 我能够在fiddrel中看到json响应,但是jquery无法解析它。
这是我的代码:
$("#jsonTestCasePost").click(function(){
var requestType = $("#requestType").val();
$('#result').val(requestType);
debugger;
$.post("http://localhost/api/number/substract", {numberA:"32",numberB:"10"},
function(data){
debugger;
$('#result').val(data);
}, requestType);
});
这是我在fiddler中的原始回复文本。
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 15
Server: Jetty(6.1.11)
{"result":"22"}
在jquery done函数中,我看到以下值:
status: 0
statusTex: "",
responses: {}
headers: ""
知道我在这里做错了什么吗? 感谢
答案 0 :(得分:2)
您需要使用数据的结果属性:
$('#result').val(data.result);
答案 1 :(得分:1)
如果您正在执行cross browser
请求,请使用jquery的ajax
$.ajax({
url:'http://localhost/api/number/substract',
type:'POST',
data:{numberA:"32",numberB:"10"},
dataType:'json',
async:false,
cache:false,
crossDomain:true,
success:function(data){
$('#result').val(data.result);
},
error:function(jxhr){
console.log(jxhr.responseText);
}
});
答案 2 :(得分:1)
根据要求,这是我的回答:
由于same origin policy,您可能成为限制的受害者。确保您的请求被发送到您的页面所在的同一服务器。例如,如果您要求http://localhost/api/number/substract
,则您当前的请求页面必须位于http://localhost
。
答案 3 :(得分:0)
从同一台服务器发出请求解决了我的问题。感谢gilly3给你评论。