skip to Main Content

I want to fetch JSON data from eBay Sandbox using JavaScript

I tried getting it through CORS request (as it is a cross domain request) but it returns undefined. I tried lots of different code but I haven’t found any solutions.
What I want to do is that fetch the products from eBay and display them in my Chrome extension.

Any help is appreciated.

2

Answers


  1. Chosen as BEST ANSWER

    I found a solution by making a CORS request and using the CORS Anywhere API from https://github.com/Rob--W/cors-anywhere/

    var cors_api_url = 'https://cors-anywhere.herokuapp.com/';
    function doCORSRequest(options, printResult) {
        var x = new XMLHttpRequest();
        x.open(options.method, cors_api_url + options.url);
        x.onload = x.onerror = function() {
            printResult(
                options.method + ' ' + options.url + 'n' +
                x.status + ' ' + x.statusText + 'nn' +
                (x.responseText || '')
            );
        };
        x.send(options.data);
    }
    (function() {
        var outputField = document.getElementById('output');
        new1();
        function new1() {
            // e.preventDefault();
            doCORSRequest({
                method: 'GET',
                url: url,
            }, function printResult(result) {
                //result contains the response
                //write your code here
            });
        };
    })();
    

    Source: https://github.com/Rob--W/cors-anywhere/blob/master/demo.html

    (Live example: https://robwu.nl/cors-anywhere.html)


  2. You can send a GET request to the URL.

    const http = require('http');
    
    let url = 'http://svcs.sandbox.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=NiraliAc-FlashSal-SBX-7d56b4536-d82a9262&GLOBAL-ID=EBAY-US&RESPONSE-DATA-FORMAT=JSON&callback=_cb_findItemsByKeywords&REST-PAYLOAD&keywords=harry%20potter&paginationInput.entriesPerPage=3&itemFilter(0).name=MaxPrice&itemFilter(0).value=25&itemFilter(0).paramName=Currency&itemFilter(0).paramValue=USD&itemFilter(1).name=FreeShippingOnly&itemFilter(1).value=true&itemFilter(2).name=ListingType&itemFilter(2).value(0)=AuctionWithBIN&itemFilter(2).value(1)=FixedPrice&itemFilter(2).value(2)=StoreInventory';
    
    http.get(url, res => {
        let body = '';
        res.on('data', data => body += data);
        res.on('end', () => {
            console.log(body);
        });
    });
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search