我无法接收从我的servlet发送的json对象

时间:2013-02-10 14:07:38

标签: java javascript jquery ajax servlets

$(document).ready(function() {
        var path = null;
        console.log('${pageContext.request.contextPath}/loadfile');
        $.ajax({
              dataType: "json",
              url: '${pageContext.request.contextPath}/loadfile',
              success: function(data){
                $.each(data,function(index,obj){
                    console.log(obj.id);
                    alert('inside');
                    path = obj.path;
                });  
              }     
              });

这里/ loadfile是返回json对象的url,当我转到这个url时,我能够看到html页面上打印的JSON对象,但是当我访问包含上述内容的页面时,我得不一样javascript代码

1 个答案:

答案 0 :(得分:0)

通常人们不会告诉他们的服务器浏览器他们发送的JSON字符串将被解释为json对象。

尽管dataType:'json'应该排除它,但情况并非总是如此。

PHP中的

header("Content-type: application/json");

ASP

Response.AddHeader('Content-Type', 'application/json');

失败了,

success: function(data){
    if (typeof data!='object') data=$.parseJSON(data); // make sure it's an object

我无法弄清楚为什么jQuery没有修复它,但是响应头,即使使用dataType:'json'设置也可以显示为application/x-www-form-urlencoded; charset=UTF-8,并且不会创建对象。