Giter Club home page Giter Club logo

Comments (2)

koltyakov avatar koltyakov commented on June 15, 2024
(() => {

  /**
   * This part is only for testing simplification from a random page.
   * Loads pnp global shim from CDN.
   * ES6 imports works as well. $pnp stands for global shim object.
   */
  if (typeof $pnp === 'undefined') {
    let s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = 'https://cdnjs.cloudflare.com/ajax/libs/sp-pnp-js/3.0.1/pnp.min.js';
    document.head.appendChild(s);
  }

  const waitFor = (cond, cb) => {
    if (!cond()) {
      setTimeout(() => waitFor(obj, cb), 100);
    } else {
      if (cb && typeof cb === 'function') {
        cb();
      }
    }
  };

  waitFor(() => typeof $pnp !== 'undefined', () => {

    // Usage in proxy mode

    const proxyUrl = 'http://localhost:8080'; // sp-rest-proxy's url for a dev project
    // _spPageContextInfo should be mimiced on locally served page
    if (typeof _spPageContextInfo === 'undefined') {
      _spPageContextInfo = {};
      _spPageContextInfo.webServerRelativeUrl = '/sites/site/web'; // Provide a web's relative URL
      _spPageContextInfo.webAbsoluteUrl = `${proxyUrl}${_spPageContextInfo.webServerRelativeUrl}`;
    }

    // PnP JS Core setup
    $pnp.setup({
      sp: {
        headers: {
          Accept: 'application/json;odata=verbose;'
        }
      }
      // `baseUrl` with `_spPageContextInfo.webAbsoluteUrl` can be used
      // or strict Web object creation as shown below
    });

    // Create new Web object with `webAbsoluteUrl` to proxy
    let web = new $pnp.Web(_spPageContextInfo.webAbsoluteUrl);

    // Using POST method to create an item as example
    web.getList(`${_spPageContextInfo.webServerRelativeUrl}/Lists/CustomList`)
      .items.add({
        Title: 'New Item'
      }).then(console.log);

  });

})();

Request from non-SharePoint page

image

image

image

image

Request in Proxy

image

from sp-rest-proxy.

koltyakov avatar koltyakov commented on June 15, 2024

Blog post article with setting up SPFx and Proxy with PnP JS Core section as a bonus.

from sp-rest-proxy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.