我是eBay API的新手,一直在创建url字符串并将其附加到JS创建的'script'标记,只是调用 findItem / findItemAdvanced 所以远远没有接收和处理响应的问题。
问题是我在错误后尝试了 getSingleItem 请求和wada-ya-know错误。
第一次尝试:
<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-PAYLOAD:
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'
所以我问自己为什么,继续寻找,找出几种不同的方法来打电话&amp;最后决定jQuery $ .ajax()GET / POST方法最适合我的有限编码功能。
经过多次练习后,我想出了一个适用于发现而不是该死的 getItem 网址的电话。
$(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屏障来解决这个问题了,现在出现了这个错误:
资源解释为脚本,但使用MIME类型text / xml
进行传输
无论我试图试探什么,都会突然出现。
答案 0 :(得分:1)
你的代码说:
responseencoding=XML
和
RESPONSE-DATA-FORMAT=XML
XML不是JSONP。
要将响应作为JSONP处理,服务器必须将响应格式化为JSONP。
eBay的API可能支持也可能不支持JSONP,但如果支持,则必须要求而不是XML。