首页 > 解析JSON数据格式时遇到AJAX跨域问题,怎么解决?

解析JSON数据格式时遇到AJAX跨域问题,怎么解决?

解析JSON数据格式时遇到AJAX跨域问题,怎么解决?

之前做好了JSON格式:

{"status":200,"message":"查询成功","data":[{"Title":"购买须知","PicUrl":"https://www.ihuale.com:9999/ShopImg/201601/购买须知_2016012.jpg","ActUrl":"https://www.ihuale.com:9999/Activitys?ActId=8a5e1cbc-4843-40a5-a82e-aff291d608ab"},{"Title":"专享花束","PicUrl":"https://www.ihuale.com:9999/ShopImg/201602/24.8最新_20160228.jpg","ActUrl":"https://www.ihuale.com:9999/Activitys?ActId=531b5089-e6f7-4921-ae0c-13d5c8a408c7"},{"Title":"养护技巧","PicUrl":"https://www.ihuale.com:9999/ShopImg/201601/养护技巧_2016012.jpg","ActUrl":"https://www.ihuale.com:9999/Activitys?ActId=67ff92fc-e199-42ad-8340-51f22af30a08"}]}

下面写的javascript:

/* 解析json */
$.ajax({
    cache: false,
    async: true,
    type: "get",
    url: "https://www.ihuale.com:9999/rest/activity",
    dataType: "json",
    success: function (data) {
        var datas = JSON.parse(data);
        console.log(data);
    },
    error:function(status, message, data) {
        console.log(status);
        console.log(message);
        console.log(data);
    }
});

这样写的输不出来,还不清楚在哪里出问题。请各位老师帮忙指导,谢谢。


为什么要手动解析。时至今日,这个轮子真的不用自己造。
用log打印一下响应的值,字符串就用json.parse对象就直接用。其实这方法很多的。
当然ajax可以通过设定格式,直接先处理咯,这个过程你看不到。
遍历的话,循环就可以了。


直接使用$.ajax需要把json字符串解析成对象,data=$.parseJSON(data);使用$.get或者$.post则不需要


dataType是请求的正文格式,你GET请求哪来的正文?

contentType才是响应的,如果响应在协议头中设置了application/json,那么data应该自行解析成json对象。

你是不是解析了两遍?


试一试:
function callback( data ){
    console.log( data );
}

$.ajax({
    crossDomain: true,
    type:"GET",
    contentType: "application/json; charset=utf-8",
    async:false,
    url: "https://www.ihuale.com:9999/rest/activity",
    dataType: "jsonp",                
    jsonpCallback: 'callback'
});

if都没有 你的else怎么来的 编辑器就不会报错?


跨域的话要采用`
jsonp

【热门文章】
【热门文章】