GithubHelp home page GithubHelp logo

Comments (8)

catamphetamine avatar catamphetamine commented on July 23, 2024

I need to set Content-Type header to application/vnd.api+json for each POST/PATCH/DELETE call in my application

Can you explain more what do you mean

and enable CORS requests with credentials by invoking request.withCredentials() on the superagent.

Yeah, I guess we could add that option, something like http.get(url, data, { withCredentials: true }).

from react-pages.

beskacz avatar beskacz commented on July 23, 2024

In the rect-isomorphic-render@11 there was http request setting:

http:
  {
    // (optional)
    // Will be called for each HTTP request
    // sent using `http` utility inside Redux action creators.
    // (`request` is a `superagent` request)
    request: (request, { store }) =>
    {
      if (request.url.indexOf('https://my.domain.com') === 0)
      {
        request.set('X-Secret-Token', store.getState().secretToken)
      }
    }
   ...
}

As described here: https://visionmedia.github.io/superagent/#cors
withCredentials allows to send cookies cross-origin and we are using a session cookie to authorize with API.

It would be actually better to set/modify request globally, as if it's set during making the call, I need to amend each call in our app and it will be an additional boilerplate.

from react-pages.

catamphetamine avatar catamphetamine commented on July 23, 2024

I meant this:

I need to set Content-Type header to application/vnd.api+json for each POST/PATCH/DELETE call in my application

from react-pages.

catamphetamine avatar catamphetamine commented on July 23, 2024

What's the reason for setting application/vnd.api+json in your app?

from react-pages.

catamphetamine avatar catamphetamine commented on July 23, 2024

@bartushek Oh, nvm, I see it now on stackoverflow:
https://stackoverflow.com/questions/28055526/header-value-application-vnd-apijson
So, basically, application/vnd.api+json has a specific standardized schema applied to it.

from react-pages.

beskacz avatar beskacz commented on July 23, 2024

Yup, exactly, I need to set it, as our API throws errors when content-type mismatch. Now I wonder how did it work previously on the client side, as this is the configuration option for webpageServer. Was it somehow shared between client and server? 🤔

from react-pages.

catamphetamine avatar catamphetamine commented on July 23, 2024

I guess I'll just uncomment this line:
https://github.com/catamphetamine/react-website/blob/149afa0248d61e452c1744d9069e5a6ab0ea8d3c/source/redux/HttpClient.js#L9-L21

What would be a better name for this setting...

  • onRequest()
  • onBeforeSend()
  • onSendRequest()

I guess it'll be http.onRequest(request, { ...parameters }).
See if the latest release works.

Now I wonder how did it work previously on the client side, as this is the configuration option for webpageServer.

No, it's the shared setting.
See the end of the section: https://github.com/catamphetamine/react-website#http-utility

from react-pages.

beskacz avatar beskacz commented on July 23, 2024

Great! I've already seen your commit, onRequest looks good and IMO this hook name is more often used across other libraries :) Thank you!

from react-pages.

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.