鍍金池/ 問答/PHP  HTML/ 京東萬象提供的新聞api接口前端怎么寫呢?

京東萬象提供的新聞api接口前端怎么寫呢?

https://wx.jcloud.com/market/datas/31/11073,新聞api接口提供的地址,我申請成功,url是https://way.jd.com/jisuapi/get?channel=%E5%A4%B4%E6%9D%A1&num=10&start=0&appkey=b02e7c354e08422a24942125a5a65c97,瀏覽器直接打開就可以顯示json數(shù)據(jù)。
可是jquery的ajax獲取的話,datatype為json的報跨域,datatype為jsonp的話,報錯格式有問題, 因為這就是一個json格式的數(shù)據(jù),那么應該怎么獲取呢?需要后臺轉一下嗎?可是沒有后臺知識,代碼如下:

<script type="text/javascript">
            $.ajax({
                type:"post",
                url:"https://way.jd.com/jisuapi/get?channel=%E5%A4%B4%E6%9D%A1&num=10&start=0&appkey=b02e7c354e08422a24942125a5a65c97",
//                dataType:"jsonp",    
//               jsonp:"callback",    
//               jsonpCallback:"success_jsonp",    
                success: function (res){
                    console.log(res)
                }
            });
        </script>
回答
編輯回答
久礙你

很明顯這個api不支持jsonp的調用方式,后端應用程序需要接收一個callback回調的函數(shù)名,其次需要添加Access-Control-Allow-Origin響應頭,你可以讓后臺幫你請求,然后給你提供ajax請求接口。PS:樓上回答我也是醉了,有測試過嗎?亂放一堆錯誤代碼。

2017年9月5日 15:04
編輯回答
綰青絲

我也用京東萬象寫過一個小的新聞頁面
https://www.nnnnzs.cn/news
jquery ajax獲取的是后端的php,后端的php才是去獲取頁面的 這種方法叫后端轉發(fā)
解決瀏覽器跨域問題的方法之一
京東萬象的新聞api有php的sdk可以下載 可以花點時間學一點php

2018年6月29日 16:18
編輯回答
萌小萌

我看你選了php的標簽,為什么不讓后端用curl的方法獲取文字再傳到前端呢?

2017年11月28日 04:30
編輯回答
不二心

根據(jù)你提供的接口來看,該接口不支持jsonp,可以考慮以下兩種方式:

  1. 你們的后臺進行接口轉發(fā)或者nginx進行代理,也就是ajax訪問同域接口,這個接口再去取京東的數(shù)據(jù);
  2. 讓京東響應頭設置Access-Control-Allow-Origin屬性。
2017年5月1日 11:27
編輯回答
幼梔

這類api都是讓你服務器端獲取數(shù)據(jù)的 你放在前端調用 不好限制你的訪問頻率
做個后端的轉發(fā)吧 如果內(nèi)容不是實時性的 增加緩存機制 降低請求頻率

2018年2月18日 13:01
編輯回答
雅痞

通過url以及可以在瀏覽器中直接打開可以判斷出來,這個請求為get請求,參數(shù)在url中,所以應該是type為‘get’才可以,另外由于請求的時候并非在相同域名下,根據(jù)同源策略,也是需要跨域請求的。
所以代碼應該如下:

$.ajax({
    url:'xxx',
    type:'GET',
    dataType:'jspnp',
}).done(function(res){
    if(res.code == '1'){
        console.log(res);
    } 
})

即可;
ps:另外,個人建議,不要把url公開出來,這樣申請的密匙就不是很安全了.

2017年10月3日 10:56
編輯回答
離夢
$.ajax({
    type: 'get',
    url: 'https://way.jd.com/jisuapi/get',
    data: {
        channel: '頭條',
        num: 10,
        start: 0,
        appkey: 'b02e7c354e08422a24942125a5a65c97'
    },
    dataType: 'jsonp',
    jsonp: 'callback',
    success: function (data) {
        var json = JSON.stringify(data);
        console.log(json);
    },
    error: function (msg)
    {
        console.log(msg);
    }
})

前端ajax獲取數(shù)據(jù),后端還是要處理獲取到的數(shù)據(jù)的,否則還是會報錯

2017年9月4日 07:54