2008-09-17 94 views
10

我确定来自服务器的JSON是有效的(手动进行ajax调用),但我真的很想使用JQuery。我还确定使用萤火虫发送到服务器的“发布”网址是正确的。但是,错误回调仍然被触发(parsererror)。我也尝试过数据类型:文本。无法从JQuery接收JSON ajax调用

我还有其他选择吗?

$(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 

回答

19

这里有一些建议,我会尝试:

1)已指定要 '的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

希望这有助于一些!

+0

非常感谢您花时间回答。它是我作为数据类型的dataType选项 – 2008-09-17 03:41:18

+7

只需要注意,将dataType设置为“json”会自动将contentType设置为“application/json”。 – bhollis 2008-09-20 04:00:23

+0

@BHR +1根据文档正确。然而,也许有用的要注意:我正在使用jquery 1.6.4 atm,并发现我需要明确设置contentType:“application/json; charset = utf-8” – zack 2012-02-14 18:15:07

0

数据参数错误。下面是工作的例子:

数据:{指数:ddl.selectedIndex},

这contructs与值ddl.selectedIndex属性称为索引的对象。

您需要从您的数据参数行删除引号

好运 一个

1

为什么myResult,而不是request

success: function(request) { 
       alert(myResult.length); 
      }