我已经确定来自服务器的JSON是有效的(手动进行ajax调用),但我真的很想使用JQuery。我还确定使用firebug发送到服务器的“post”URL是正确的。但是,仍然会触发错误回调(解析错误)。我也尝试过数据类型:text。
我还应该包括其他选项吗?
$(function() {
$("#submit").bind("click", function() {
$.ajax({
type: "post",
url: "http://myServer/cgi-bin/broker" ,
datatype: "json",
data: {'start' : start,'end' : end},
error: function(request,error){
alert(error);
},
success: function(request) {
alert(request.length);
}
}); // End ajax
}); // End bind
}); // End eventlistener
答案 0 :(得分:19)
以下是我会尝试的一些建议:
1)您指定的'datatype'选项应为'dataType'(我认为区分大小写)
2)尝试使用'contentType'选项:
contentType: "application/json; charset=utf-8"
我不确定这对你的帖子网址的请求有多大帮助,而不是在回复中。 有关详细信息,请参阅此文章:http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax (它是为asp.net编写的,但可能适用)
3)三重检查帖子网址的输出并通过JSON验证器运行输出,以确保它是有效的,并且可以解析为JSON对象。 http://www.jsonlint.com
希望其中一些有帮助!
答案 1 :(得分:1)
为什么myResult
代替request
?
success: function(request) {
alert(myResult.length);
}
答案 2 :(得分:0)
数据参数错误。这是一个有效的例子:
data:{index:ddl.selectedIndex},
这构造了一个具有名为index的属性的对象,其值为ddl.selectedIndex。
您需要从数据参数行中删除引号
祝你好运 甲