【问题标题】:jQuery $.ajax() is working when type:html or text but not working when type:jsonjQuery $.ajax() 在 type:html 或 text 时有效,但在 type:json 时无效
【发布时间】:2017-08-26 21:49:42
【问题描述】:

这是我的代码:

<script>
    $.ajax({
        url:url, /* ./ajax/data.json */
        type:'post',
        dataType:'text', /* text,html,json,jsonp */
        /*contentType: 'application/json',*/
        async:true,
        success: function(data){
            console.log(arguments);
            alert('success');
        },
        error: function(){
            alert('failed');
        }
    });
</script>

当 type:'text' & type:'html' 时,我得到响应和警报('success'), 但是当我尝试输入时收到警报('失败'):'jsonp'

更新:Json 文件

{
  data1:{'Data 1'},
  data2:{'Data 2'},
  data3:{'Data 3'},
  data4:{'Data 4'},
  data5:{'Data 5'},
  data6:{'Data 6'},
  data7:{'Data 7'},
  data8:{'Data 8'},
  data9:{'Data 9'},
}

【问题讨论】:

  • 来自服务器的响应,如果使用dataType: 'JSON'则需要JSON
  • 那么问题出在json还是jsonp上?
  • error 处理程序接收 三个参数jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象,一个字符串描述发生的错误类型和一个可选的异常对象(如果发生了)。”
  • 我不确定是什么问题,我需要以 json 格式获取响应。
  • 当你使用dataType;'json',时,你必须从服务器端发送json响应。你能显示你的服务器端代码吗?

标签: javascript jquery json ajax xmlhttprequest


【解决方案1】:

在您的代码中,ajax 调用类型必须为'get'
主要问题出在您的 json 文件中。

你的 json 文件

{
  data1:{'Data 1'},
  data2:{'Data 2'},
  data3:{'Data 3'},
  data4:{'Data 4'},
  data5:{'Data 5'},
  data6:{'Data 6'},
  data7:{'Data 7'},
  data8:{'Data 8'},
  data9:{'Data 9'},
}

不是有效的 Json 格式

我已经改成

{
  "data1":"Data 1",
  "data2":"Data 2",
  ...
  "data9":"Data 9"
}

它会提示成功。

【讨论】:

  • 我更改了 json { 'data1' : 'some data' } 不起作用,但它起作用了 { "data1" : "some data" } :)
猜你喜欢
  • 1970-01-01
  • 2018-10-11
  • 2011-07-04
  • 2023-04-01
  • 1970-01-01
  • 2015-10-09
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多