2015-01-06 20 views
-2

我是eBay的API的新手,已創建url字符串並將其附加到JS創建的'腳本'標記中,僅呼叫findItem/findItemAdvanced到目前爲止,並沒有問題接收和處理響應。eBay API響應錯誤:將資源解釋爲腳本,但使用MIME類型text/xml傳輸

問題是我嘗試了一個getSingleItem請求和wada-ya知道錯誤後出錯。

第一次嘗試:

<script> 
    url='htt'+'p://open.api.ebay.com/shopping?' 
      +'callname=GetSingleItem' 
    +'&'+'responseencoding=XML' 
    +'&'+'appid=********-2a4d-4b23-8d37-defc1bbb868f' 
    +'&'+'siteid=0' 
    +'&'+'version=515' 
    +'&'+'ItemID=191467818411' 
    +'&'+'callback=funCB' 
    /******************************/ 
    elm=document.createElement('script') 
    elm.src=url 
    document.body.appendChild(elm) 
</script> 

這對於方法完全相同的副本找到呼叫除了網址& REST有效載荷:

url='htt'+'p://svcs.ebay.com/services/search/FindingService/v1' 
    +'?OPERATION-NAME=findItemsAdvanced' 
    +'&SERVICE-VERSION=1.0.0' 
    +'&SECURITY-APPNAME=********-2a4d-4b23-8d37-defc1bbb868f' 
    +'&GLOBAL-ID=EBAY-GB' 
    +'&RESPONSE-DATA-FORMAT=XML' 
    +'&REST-PAYLOAD=true' 

於是我問自己,爲什麼,繼續尋找,找出幾種不同的方法,以使&的調用最終決定jQuery $ .ajax()GET/POST方法最適合我有限的編碼能力。

大量的練習後,我想出了爲工作發現但不是該死的的getItem URL的電話。

$(document).ready(function(){ 
    /****************************** 
    url='htt'+'p://svcs.ebay.com/services/search/FindingService/v1' 
    +'?OPERATION-NAME=findItemsAdvanced' 
    +'&SERVICE-VERSION=1.0.0' 
    +'&SECURITY-APPNAME=********-2a4d-4b23-8d37-defc1bbb868f' 
    +'&GLOBAL-ID=EBAY-GB' 
    +'&RESPONSE-DATA-FORMAT=XML' 
    +'&REST-PAYLOAD=true' 
    +'&paginationInput.entriesPerPage=3' 
    +'&keywords=charizard' 
    /******************************/ 
    url='htt'+'p://open.api.ebay.com/shopping?' 
    +'callname=GetSingleItem' 
    +'&'+'responseencoding=XML' 
    +'&'+'appid=********-2a4d-4b23-8d37-defc1bbb868f' 
    +'&'+'siteid=0' 
    +'&'+'version=515' 
    +'&'+'ItemID=191467818411' 
    +'&'+'IncludeSelector=Description' 
    /************************************/ 
    var id; 
    $.ajax({ 
    type: 'GET', 
    url: url, 
    dataType: 'jsonp', 
    jsonp: 'callbackname', 
    success: function(xml,status,request){ console.log(xml); }, 
    error: function(request,status,error){ alert('Status: '+status+'\n\nError: '+error); }, 
    complete: function(request,status){ alert('Finished & '+status); } 
    }); 
}); 

我已經有了打過去XML/JSONP障礙走到這一步,現在這個錯誤:

Resource interpreted as Script but transferred with MIME type text/xml

是雨後春筍般冒出來,不管我怎麼努力圍繞讓我的頭。

+0

請使用普通的markdown語法突出顯示。只有在我的格式編輯之後,我們才能理解你有一個開始的評論'/ ******************************'關閉'/ ****************************** /'。 –

回答

1

您的代碼表示:

responseencoding=XML 

和:

RESPONSE-DATA-FORMAT=XML 

XML不是JSONP。

要將響應處理爲JSONP,服務器必須將響應格式化爲JSONP。

eBay的API可能支持也可能不支持JSONP,但是如果支持,您必須要求而不是XML。

+0

這對我來說是全新的,但經過多次試驗和錯誤之後,我可以讓ebay接受ajax請求的唯一方法是將'dataType'設置爲'jsonp'。關於'RESPONSE-DATA-FORMAT',當'findItemsAdvanced' url與ajax請求一起使用時,'XML','NV'或'JSON'可以成功使用,沒有錯誤。 – LostInCyberSpace

相關問題