Mikä CORS on?

CORS (eri alkuperien välinen resurssien jakaminen) on tapa, jolla palvelin ilmoittaa selaimille, mitkä muut verkkosivustot saavat lukea sen vastauksia. Oletusarvoisesti osoitteessa https://app.example.com oleva JavaScript voi lähettää pyynnön osoitteeseen https://api.example.com, mutta selain piilottaa vastauksen, ellei API vastaa Access-Control-Allow-Origin-otsakkeella, jossa määritetään sivun origin tai *.

Jos kyseessä on jokin muu kuin yksinkertainen GET-pyyntö tai yksinkertainen lomakkeen POST-pyyntö, kuten PUT- tai DELETE-pyyntö tai JSON-sisältö, jossa on Authorization-otsake, selain pyytää ensin lupaa esipyynnöllä: se lähettää OPTIONS-pyynnön, jossa luetellaan käytettävä metodi ja otsakkeet. Varsinainen pyyntö lähetetään vain, jos palvelimen vastaus sallii ne.

Työkalun kuvaus

Anna sen URL-osoite, johon sivusi lähettää pyyntöjä, sivun origin, metodi ja mahdolliset mukautetut pyyntöotsakkeet. Valitse sitten Tarkista CORS. Palvelimemme lähettää samat pyynnöt kuin selain ja soveltaa vastauksiin selaimen sääntöjä:

  • Esipyyntö (OPTIONS), jossa ovat Access-Control-Request-Method ja Access-Control-Request-Headers
  • GET-pyyntö, jossa on Origin-otsake, jotta voidaan lukea tavallisen vastauksen CORS-otsakkeet

Tarkistuksista näet, mitkä säännöt täyttyvät ja mitkä eivät, ja taulukossa luetellaan molempien vastausten kaikki CORS-otsakkeet. Valitsemaasi metodia ei koskaan lähetetä, joten DELETE-päätepisteen tarkistaminen ei poista mitään.

Työkalu kertoo myös, toimisivatko cookies-pohjaiset pyynnöt. Niissä on käytettävä täsmällistä origin-arvoa *-arvon sijaan sekä otsaketta Access-Control-Allow-Credentials: true.

Rapid Tool Set MCP -palvelimeen yhdistetyt tekoälyavustajat voivat tehdä saman tarkistuksen työkalulla cors_checker.

Vinkkejä

  • CORS-virheet johtuvat selaimesta, eivät palvelimesta. Pyyntö voi toimia curlissa tai Postmanissa mutta silti estyä selaimessa, koska nämä työkalut eivät sovella CORS-sääntöjä.
  • Jos esipyyntöön vastataan tilakoodilla 401 tai 404, palvelin käsittelee OPTIONS-pyyntöä kuin tavallista pyyntöä. Salli esipyynnöt ennen todennustarkistuksia.
  • Kun palvelin valitsee sallitun origin-arvon pyyntökohtaisesti, sen pitäisi lähettää myös Vary: Origin. Muuten CDN voi tarjota yhden sivuston vastauksen toiselle sivustolle.