Я уже некоторое время использую eBay для поиска API, он работал как положено, я реализовал его с помощью JavaScript, как показано в их документации. и недавно, из ниоткуда это перестало работать, я понятия не имею, в чем проблема ..
Я проверил тот же вызов с помощью почтальона, там все работает. Также это работает, когда я делаю один и тот же звонок в php или в C #, поэтому я подумал, что, возможно, eBay что-то сделал, и я могу получить информацию только из языка "бэкэнда": /? IDK .. Итак, я создал ссылку, которая получает информацию от eBay и выводит ее с помощью вызова get, и когда я пытаюсь получить эти данные с помощью Javascript, она также не работает, эта ссылка также работает в почтальоне или браузере.
Может кто-нибудь объяснить мне, что здесь происходит, что-то не так с моим кодом? (раньше он работал без проблем более полугода ..), затем это должно быть что-то с eBay или IDK ... а также, почему моя ссылка не работает, я покажу вам весь код и ошибки, используя режим отладки браузера.
хорошо Итак, мой код JavaScript:
var urlp1 = "https://svcs.ebay.com/services/search/FindingService/v1";
urlp1 += "?OPERATION-NAME=findItemsByKeywords";
urlp1 += "&SERVICE-VERSION=1.0.0";
urlp1 += "&SECURITY-APPNAME=myappname";
urlp1 += "&GLOBAL-ID=EBAY-GB";
urlp1 += "&RESPONSE-DATA-FORMAT=JSON";
urlp1 += "&callback=pages1";
urlp1 += "&REST-PAYLOAD";
urlp1 += "&keywords=" + zodis;
urlp1 += "&outputSelector(0)=PictureURLLarge";
urlp1 += "&outputSelector(1)=StoreInfo";
urlp1 += "&paginationInput.entriesPerPage=" + EPP;
urlp1 += "&paginationInput.pageNumber=" + puslapis;
urlp1 += "&itemFilter(0).name=Seller";
urlp1 += "&itemFilter(0).value(0)=daviva16";
urlp1 += "&itemFilter(0).value(1)=davivaltd";
urlp1 += "&itemFilter(0).value(2)=davivastore";
ss=document.createElement('script');
ss.src= urlp1;
document.body.appendChild(ss);
Функция обратного вызова на 100% ОК, сам вызов http завершается неудачно, я получаю:
(тело ответапусто)
, но если я использую ту же ссылку (без обратного вызова) (я вставляю ссылку в браузер), я получаю ожидаемую информацию: ![from browser](https://i.ibb.co/StqjrK7/Capture2.png)
Так что мой первый подход состоял в том, чтобы как-то решить эту проблему. Но я понятия не имею, что с этим делать. Я пытался сделать вызов с использованием XMLHttpRequest и JQuery Ajax, но безуспешно.
Затем я сделал эту ссылку с помощью ядра asp.net 2.1 C #
[HttpGet]
[ProducesResponseType(StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[Route("Public/Ebaycalaidaviva162")]
public ActionResult<JObject> Ebaycalaidaviva162(string zodis, string kiekis, string puslapis)
{
string atsakas = "";
using (HttpClient client = new HttpClient())
{
try
{
//Post http callas.
HttpResponseMessage response = client.GetAsync("https://svcs.ebay.com/services/search/FindingService/v1?"
+ "OPERATION-NAME=findItemsIneBayStores"
+ "&SERVICE-VERSION=1.0.0"
+ "&SECURITY-APPNAME=myappname"
+ "&GLOBAL-ID=EBAY-GB"
+ "&storeName=daviva16"
+ "&RESPONSE-DATA-FORMAT=JSON"
+ "&outputSelector(0)=PictureURLLarge"
+ "&outputSelector(1)=StoreInfo"
+ "&keywords=" + zodis
+ "&paginationInput.entriesPerPage=" + kiekis
+ "&paginationInput.pageNumber=" + puslapis).Result;
//nesekmes atveju error..
response.EnsureSuccessStatusCode();
//responsas to string
string responseBody = response.Content.ReadAsStringAsync().Result;
atsakas = responseBody;
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ", e.Message);
}
}
return JObject.Parse(atsakas);
}
И я также не могу получить информацию по этой ссылке .. ![call to my link](https://i.ibb.co/gSXjcz6/Capture3.png)
Состояние в порядке, но тело пустое, и когда я снова открываю эту ссылку в браузере, я получаю всю информацию.. ![open my link in browser](https://i.ibb.co/NVf0Qpq/Capture4.png)
Ссылка: https://backend.daviva.lt/public/Ebaycalaidaviva162?zodis=part&kiekis=12&puslapis=1 эта ссылка на данный момент неактивна и имеет 5 тыс. Запросовя могу проверить это, если хочешь ..
Я думаю, у этой проблемы может быть очень простое решение, но мне самому не хватает знаний, чтобы ее решить ..
Она делаетдля меня не имеет значения, как вы это решите. Вы можете что-то изменить в ссылке APS.NET Core, чтобы она работала с вызовом JavaScript или с вызовом JavaScript, или с чем угодно ... Все, что важно для меня, чтобы я мог получать данные Json с помощью javaScript ..
Спасибо!
Чтобы похудеть
Я пробовал это:
$.ajax({
async: true,
type: "GET",
dataType: "json",
url: "https://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=myappname&GLOBAL-ID=EBAY-GB&RESPONSE-DATA-FORMAT=JSON&REST-PAYLOAD&keywords=part&outputSelector(0)=PictureURLLarge&outputSelector(1)=StoreInfo&paginationInput.entriesPerPage=8&paginationInput.pageNumber=1&itemFilter(0).name=Seller&itemFilter(0).value(0)=daviva16&itemFilter(0).value(1)=davivaltd&itemFilter(0).value(2)=davivastore",
crossDomain: true,
success: function (atsakas) {
alert(atsakas);
},
error: function (error) {
alert("error " + error);
}
И я получаю код состояния 200, но ответтело пусто и вызывает ошибку в функции ajax. Заголовки ответа: ![enter image description here](https://i.stack.imgur.com/rOkzP.png)
И я получаю ошибку CORS в консоли.
SEC7120: [CORS] Источник 'file: //' didnot find 'file: //' в заголовке ответа Access-Control-Allow-Origin для ресурса с несколькими источниками в https://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=myappname&GLOBAL-ID=EBAY-GB&RESPONSE-DATA-FORMAT=JSON&REST-PAYLOAD&keywords=part&outputSelector(0)=PictureURLLarge&outputSelector(1)=StoreInfo&paginationInput.entriesPerPage=8&paginationInput.pageNumber=1&itemFilter(0).name=Seller&itemFilter(0).value(0)=daviva16&itemFilter(0).value(1)=davivaltd&itemFilter(0).value(2)=davivastore'.