eBay API response error: Resource interpreted as Script but transferred with MIME type text/xml
eBay API response error: Resource interpreted as Script but transferred with MIME type text/xml
我是 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>
这与 find 调用的方法完全相同,除了 url & 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'
所以我问自己为什么,继续寻找,找出几种不同的调用方法并最终决定 jQuery $.ajax() GET/POST 方法最适合由于我有限的编码能力。
经过大量练习后,我想出了一个适用于 finding 而不是该死的 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
无论我怎么想,它都会弹出。
你的代码说:
responseencoding=XML
和:
RESPONSE-DATA-FORMAT=XML
XML 不是 JSONP。
要将响应处理为 JSONP,服务器必须将响应格式化为 JSONP。
eBay 的 API 可能支持也可能不支持 JSONP,但如果支持,您必须提出要求而不是 XML。
我是 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>
这与 find 调用的方法完全相同,除了 url & 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'
所以我问自己为什么,继续寻找,找出几种不同的调用方法并最终决定 jQuery $.ajax() GET/POST 方法最适合由于我有限的编码能力。
经过大量练习后,我想出了一个适用于 finding 而不是该死的 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
无论我怎么想,它都会弹出。
你的代码说:
responseencoding=XML
和:
RESPONSE-DATA-FORMAT=XML
XML 不是 JSONP。
要将响应处理为 JSONP,服务器必须将响应格式化为 JSONP。
eBay 的 API 可能支持也可能不支持 JSONP,但如果支持,您必须提出要求而不是 XML。