JSONP通过getJson无法正常工作?

时间:2014-06-03 18:45:08

标签: javascript json jsonp

我这样得到json:

 $.getJSON(userUrl+'scanp?callback=?', { 'someparametar': 100 }, function(data){  
  console.log(data);
});

我收到了我的网址回复,看起来像这样:

'"jQuery1110010384737118147314_1401820556204({'hasWon':'false','code':'120580e9fce67a4921f31af7ffa358cc10c83b10','defaultReward':'{\"secure_url\":\"https://res.cloudinary.com/deh0vdgzd/image/upload/v1401318096/k6jrm2pehwycmehrkicz.png\",\"url\":\"http://res.cloudinary.com/deh0vdgzd/image/upload/v1401318096/k6jrm2pehwycmehrkicz.png\",\"resource_type\":\"image\",\"format\":\"png\",\"height\":960,\"width\":640,\"signature\":\"a8ca9bb867e0a3d99e1666b7891e8f918d81e627\",\"version\":1401318096,\"public_id\":\"k6jrm2pehwycmehrkicz\"}''}"'

我知道为什么我在控制台时没有得到任何回复。记录它?

2 个答案:

答案 0 :(得分:0)

使用'回调'在您的查询字符串中,JQuery使用随机生成的方法名称包装响应。要获取JSON(没有方法名称),请删除' callback =?'来自querystring。

如果您的服务器支持JSONP,您可以进行如下调用:

        $.ajax({
           type: 'GET',
            url: url,
            jsonpCallback: 'jsonCallback',
            contentType: "application/json",
            dataType: 'jsonp',
            success: function(json) {
                console.log(JSON.stringify(json));
            },
            error: function(e) {
               console.log(e.message);
            }
        });

希望这有帮助。

答案 1 :(得分:0)

好吧我明白了,我写的请求非常好。导致问题的原因是我从服务器获得的响应。

返回前是JSON字符串化。