2016-03-15 57 views
0

我从我的供应商返回JSON数据之一的API,API是如下: - http://shipdesk.in/mobile/mobile_quick.php?country=IN&to_country=IN&pin=560001&weight=2.5&unit=KG&need_cod=No&to_pin=700001获取JSONP数据

现在这个API不具备JSONP编码,所以我不能附加&callback=processJSON这个。

我读过Yahoo Api可以将其从JSON转换为JSONP,我可以在我的网站中使用它,但是我没有成功。

另外我的网站有几个限制,所以我不能为此编写php代码。它必须在Javascript中完成。

的JSONP代码(另一个示例),其工作原理是如下: -

<span id='test'>nothing</span> 

<script> 
    function processJSON(json) { 
     // Do something with the JSON response 

     result = JSON.stringify(json); 

     //alert(result); 
     document.getElementById("test").innerHTML = result; 

    }; 
</script> 

<script src='http://api.flickr.com/services/feeds/photos_public.gne?tags=monkey&tagmode=any&format=json&jsoncallback=processJSON'></script> 

任何想法,链接,教程和代码段将非常感谢。

回答

0

可能这是你的预期。 使用雅虎API正常JSON转换为JSONP类型(yahoo link):

<span id='test'>nothing</span> 

<script> 
/* function processJSON (json) { 
    // Do something with the JSON response 

result=JSON.stringify(json); 

//alert(result); 
document.getElementById("test").innerHTML = result; 

}; 
*/ 
</script> 

<script> 
var yql_url = 'https://query.yahooapis.com/v1/public/yql'; 
var url = 'http://shipdesk.in/mobile/mobile_quick.php?country=IN&to_country=IN&pin=560001&weight=2.5&unit=KG&need_cod=No&to_pin=700001'; 

$.ajax({ 
    'url': yql_url, 
    'data': { 
    'q': 'SELECT * FROM json WHERE url="'+url+'"', 
    'format': 'json', 
    'jsonCompat': 'new', 
    }, 
    'dataType': 'jsonp', 
    'success': function(response) { 
    console.log(response); 
    document.getElementById("test").innerHTML = JSON.stringify(response); 
    }, 
    'error': function(error) { 
    document.getElementById("test").innerHTML = "error"; 
    } 
}); 
</script> 

新的脚本有使用我们的网址Ajax调用API雅虎。 但是,您应该使用您的API响应数据来信任雅虎。

希望这会有所帮助。

+0

感谢亿,它就像一个魅力。而且我相信雅虎用于我的API:P –

+0

有趣的是,它使用to_pin = 700001,但与to_pin = 400001不兼容。是否有可以访问多少个API的限制? –