{"id":18964,"date":"2025-04-23T09:30:15","date_gmt":"2025-04-23T06:30:15","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/"},"modified":"2025-04-23T09:30:15","modified_gmt":"2025-04-23T06:30:15","slug":"vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/","title":{"rendered":"Vercel&#8217;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme"},"content":{"rendered":"<p><body><\/p>\n<p>Vercel&#8217;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme<\/p>\n<p>Merhaba! Fatih Soysal burada.  Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel&#8217;de deploy ederken s\u0131k kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z CORS (Cross-Origin Resource Sharing) hatalar\u0131n\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m.  \u00d6ncelikle, CORS hatas\u0131n\u0131n ne oldu\u011funu ve neden kaynakland\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir.  K\u0131saca, CORS, farkl\u0131 bir domain&#8217;den gelen isteklere izin vermeyle ilgili bir g\u00fcvenlik mekanizmas\u0131d\u0131r.  \u00d6rne\u011fin,  example.com adresindeki bir uygulama, api.example.com adresindeki API&#8217;ye istek g\u00f6nderdi\u011finde, taray\u0131c\u0131 g\u00fcvenlik nedeniyle bu iste\u011fi engeller. Bu durumda CORS hatas\u0131 al\u0131rs\u0131n\u0131z.<\/p>\n<p><b>Peki bu hatay\u0131 nas\u0131l \u00e7\u00f6zebiliriz?<\/b>  \u0130\u015fte size ad\u0131m ad\u0131m \u00e7\u00f6z\u00fcm \u00f6nerileri:<\/p>\n<h2>1. Sorunun Kayna\u011f\u0131n\u0131 Anlama<\/h2>\n<p>\u00d6ncelikle, kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z hatan\u0131n tam metnini inceleyin. Hata mesaj\u0131, sorunun kayna\u011f\u0131 hakk\u0131nda \u00f6nemli ipu\u00e7lar\u0131 i\u00e7erecektir.  Hata mesaj\u0131nda hangi origin&#8217;den istek geldi\u011fi ve hangi method&#8217;lar\u0131n engellendi\u011fi belirtilecektir. Bu bilgi, do\u011fru \u00e7\u00f6z\u00fcm\u00fc bulman\u0131zda size yol g\u00f6sterecektir.<\/p>\n<h2>2. Vercel&#8217;de CORS Ayarlar\u0131n\u0131 Yap\u0131land\u0131rma<\/h2>\n<p>Vercel, CORS ayarlar\u0131n\u0131 y\u00f6netmenize olanak sa\u011flayan bir aray\u00fcze sahiptir.  Uygulaman\u0131z\u0131n deployment ayarlar\u0131na giderek,  CORS veya benzeri bir ba\u015fl\u0131k alt\u0131nda  origin ve methods gibi \u00f6zelliklerin tan\u0131mlanabilece\u011fi bir b\u00f6l\u00fcm bulacaks\u0131n\u0131z.  Burada, izin verilecek originleri (\u00f6rne\u011fin,  https:\/\/www.fatihsoysal.com) ve HTTP methodlar\u0131n\u0131 (GET, POST, PUT, DELETE vb.)  belirleyebilirsiniz.  <b>Dikkat:<\/b>  Production ortam\u0131nda, t\u00fcm originlere izin vermek g\u00fcvenlik a\u00e7\u0131\u011f\u0131 yaratabilir, bu nedenle yaln\u0131zca g\u00fcvenilir originleri belirlemeniz \u00f6nemlidir. <\/p>\n<h2>3. NestJS Uygulaman\u0131zda CORS Ortam\u0131n\u0131 Yap\u0131land\u0131rma<\/h2>\n<p>Vercel&#8217;deki ayarlar yeterli olmayabilir.  NestJS uygulaman\u0131zda da CORS&#8217;u a\u00e7\u0131k\u00e7a yap\u0131land\u0131rman\u0131z gerekebilir.  Bunun i\u00e7in @nestjs\/platform-express paketini kullanabilirsiniz.  A\u015fa\u011f\u0131daki kod \u00f6rne\u011fi,  CORS middleware&#8217;ini nas\u0131l kullanabilece\u011finizi g\u00f6stermektedir:<\/p>\n<pre><code class=\"language-typescript\">\nimport { NestFactory } from '@nestjs\/core';\nimport { AppModule } from '.\/app.module';\n\nasync function bootstrap() {\n  const app = await NestFactory.create(AppModule);\n  app.enableCors({\n    origin: ['https:\/\/www.fatihsoysal.com', 'http:\/\/localhost:3000'], \/\/ \u0130zin verilecek origin'leri buraya ekleyin\n    methods: ['GET', 'POST', 'PUT', 'DELETE'],\n    credentials: true \/\/ E\u011fer cookie kullan\u0131yorsan\u0131z true yap\u0131n\n  });\n  await app.listen(3000);\n}\nbootstrap();\n<\/code><\/pre>\n<p>Bu kod, belirtilen originlerden gelen isteklere izin verir.  credentials: true se\u00e7ene\u011fi,  cookie&#8217;lerin iletilmesine izin verir.  Bu se\u00e7ene\u011fi,  oturum y\u00f6netimi gibi durumlar\u0131 gerektiren senaryolarda kullanman\u0131z gerekebilir.  <b>\u00d6nemli Not:<\/b>  origin dizisine * eklemek t\u00fcm originlere izin verece\u011finden g\u00fcvenlik a\u00e7\u0131s\u0131ndan risklidir.  M\u00fcmk\u00fcn oldu\u011funca spesifik originler belirlemelisiniz.<\/p>\n<h2>4.  Proxy Yap\u0131land\u0131rmas\u0131 (Geli\u015fmi\u015f \u00c7\u00f6z\u00fcm)<\/h2>\n<p>Baz\u0131 durumlarda,  Vercel&#8217;in proxy ayarlar\u0131n\u0131 kullanarak CORS sorununu \u00e7\u00f6zebilirsiniz. Vercel&#8217;in proxy \u00f6zelli\u011fi, istekleri arka u\u00e7 sunucunuzdan \u00f6nce yakalayarak,  gelen ba\u015fl\u0131klar\u0131 ve y\u00f6nlendirmeleri i\u015fleme olana\u011f\u0131 sunar. Bu y\u00f6ntem, \u00f6zellikle karma\u015f\u0131k senaryolarda faydal\u0131 olabilir.  Vercel&#8217;in d\u00f6k\u00fcmantasyonuna detayl\u0131 bilgi i\u00e7in bakabilirsiniz.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Umar\u0131m bu makale, Vercel&#8217;de \u00e7al\u0131\u015fan NestJS uygulamalar\u0131n\u0131zdaki CORS hatalar\u0131n\u0131 \u00e7\u00f6zmenize yard\u0131mc\u0131 olmu\u015ftur.  Hata ay\u0131klama s\u00fcrecinde sab\u0131rl\u0131 olun ve her ad\u0131m\u0131 dikkatlice inceleyin.  Unutmay\u0131n, g\u00fcvenlik a\u00e7\u0131s\u0131ndan t\u00fcm originlere izin vermekten ka\u00e7\u0131nman\u0131z \u00f6nemlidir.  Daha fazla bilgi ve  sorular\u0131n\u0131z i\u00e7in  <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> adresini ziyaret edebilirsiniz.   \u0130yi kodlamalar!<\/p>\n<p><b>Faydal\u0131 Kaynaklar:<\/b><\/p>\n<ul>\n<li><a href=\"https:\/\/nestjs.com\/docs\/cors\">NestJS CORS Dok\u00fcmantasyonu<\/a><\/li>\n<li><a href=\"https:\/\/vercel.com\/docs\/concepts\/functions\/serverless-functions\">Vercel Serverless Fonksiyonlar\u0131<\/a><\/li>\n<\/ul>\n<p>#Etiketler: nestjs, vercel, cors, hata, \u00e7\u00f6z\u00fcm, deployment, api, javascript, nodejs, g\u00fcvenlik<br \/>\n<\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Vercel&#8217;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme Merhaba! Fatih Soysal burada. Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel&#8217;de deploy ederken&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-18964","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Vercel&#039;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme<\/title>\n<meta name=\"description\" content=\"Merhaba! Fatih Soysal burada. Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel&#039;de deploy ederken s\u0131k kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z CORS (Cross-Origin Resource Sharing) hatalar\u0131n\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. \u00d6ncelikle, CORS hatas\u0131n\u0131n ne oldu\u011funu ve neden kaynakland\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir. K\u0131saca, CORS, farkl\u0131 bir domain&#039;den gelen isteklere izin vermeyle ilgili bir g\u00fcvenlik mekanizmas\u0131d\u0131r. \u00d6rne\u011fin, `example.com` adresindeki bir uygulama, `api.example.com` adresindeki API&#039;ye istek g\u00f6nderdi\u011finde, taray\u0131c\u0131 g\u00fcvenlik nedeniyle bu iste\u011fi engeller. Bu durumda CORS hatas\u0131 al\u0131rs\u0131n\u0131z.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vercel&#039;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Fatih Soysal burada. Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel&#039;de deploy ederken s\u0131k kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z CORS (Cross-Origin Resource Sharing) hatalar\u0131n\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. \u00d6ncelikle, CORS hatas\u0131n\u0131n ne oldu\u011funu ve neden kaynakland\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir. K\u0131saca, CORS, farkl\u0131 bir domain&#039;den gelen isteklere izin vermeyle ilgili bir g\u00fcvenlik mekanizmas\u0131d\u0131r. \u00d6rne\u011fin, `example.com` adresindeki bir uygulama, `api.example.com` adresindeki API&#039;ye istek g\u00f6nderdi\u011finde, taray\u0131c\u0131 g\u00fcvenlik nedeniyle bu iste\u011fi engeller. Bu durumda CORS hatas\u0131 al\u0131rs\u0131n\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-23T06:30:15+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Vercel&#8217;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme\",\"datePublished\":\"2025-04-23T06:30:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/\"},\"wordCount\":547,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/\",\"name\":\"Vercel'de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-04-23T06:30:15+00:00\",\"description\":\"Merhaba! Fatih Soysal burada. Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel'de deploy ederken s\u0131k kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z CORS (Cross-Origin Resource Sharing) hatalar\u0131n\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. \u00d6ncelikle, CORS hatas\u0131n\u0131n ne oldu\u011funu ve neden kaynakland\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir. K\u0131saca, CORS, farkl\u0131 bir domain'den gelen isteklere izin vermeyle ilgili bir g\u00fcvenlik mekanizmas\u0131d\u0131r. \u00d6rne\u011fin, `example.com` adresindeki bir uygulama, `api.example.com` adresindeki API'ye istek g\u00f6nderdi\u011finde, taray\u0131c\u0131 g\u00fcvenlik nedeniyle bu iste\u011fi engeller. Bu durumda CORS hatas\u0131 al\u0131rs\u0131n\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vercel&#8217;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Vercel'de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme","description":"Merhaba! Fatih Soysal burada. Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel'de deploy ederken s\u0131k kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z CORS (Cross-Origin Resource Sharing) hatalar\u0131n\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. \u00d6ncelikle, CORS hatas\u0131n\u0131n ne oldu\u011funu ve neden kaynakland\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir. K\u0131saca, CORS, farkl\u0131 bir domain'den gelen isteklere izin vermeyle ilgili bir g\u00fcvenlik mekanizmas\u0131d\u0131r. \u00d6rne\u011fin, `example.com` adresindeki bir uygulama, `api.example.com` adresindeki API'ye istek g\u00f6nderdi\u011finde, taray\u0131c\u0131 g\u00fcvenlik nedeniyle bu iste\u011fi engeller. Bu durumda CORS hatas\u0131 al\u0131rs\u0131n\u0131z.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/","og_locale":"tr_TR","og_type":"article","og_title":"Vercel'de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme","og_description":"Merhaba! Fatih Soysal burada. Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel'de deploy ederken s\u0131k kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z CORS (Cross-Origin Resource Sharing) hatalar\u0131n\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. \u00d6ncelikle, CORS hatas\u0131n\u0131n ne oldu\u011funu ve neden kaynakland\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir. K\u0131saca, CORS, farkl\u0131 bir domain'den gelen isteklere izin vermeyle ilgili bir g\u00fcvenlik mekanizmas\u0131d\u0131r. \u00d6rne\u011fin, `example.com` adresindeki bir uygulama, `api.example.com` adresindeki API'ye istek g\u00f6nderdi\u011finde, taray\u0131c\u0131 g\u00fcvenlik nedeniyle bu iste\u011fi engeller. Bu durumda CORS hatas\u0131 al\u0131rs\u0131n\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-04-23T06:30:15+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Vercel&#8217;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme","datePublished":"2025-04-23T06:30:15+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/"},"wordCount":547,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/","url":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/","name":"Vercel'de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-04-23T06:30:15+00:00","description":"Merhaba! Fatih Soysal burada. Bu yaz\u0131da, NestJS uygulamalar\u0131n\u0131z\u0131 Vercel'de deploy ederken s\u0131k kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131z CORS (Cross-Origin Resource Sharing) hatalar\u0131n\u0131 nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131m. \u00d6ncelikle, CORS hatas\u0131n\u0131n ne oldu\u011funu ve neden kaynakland\u0131\u011f\u0131n\u0131 anlamak \u00f6nemlidir. K\u0131saca, CORS, farkl\u0131 bir domain'den gelen isteklere izin vermeyle ilgili bir g\u00fcvenlik mekanizmas\u0131d\u0131r. \u00d6rne\u011fin, `example.com` adresindeki bir uygulama, `api.example.com` adresindeki API'ye istek g\u00f6nderdi\u011finde, taray\u0131c\u0131 g\u00fcvenlik nedeniyle bu iste\u011fi engeller. Bu durumda CORS hatas\u0131 al\u0131rs\u0131n\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/vercelde-calisan-nestjs-uygulamanizda-cors-hatalarini-cozme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Vercel&#8217;de \u00c7al\u0131\u015fan NestJS Uygulaman\u0131zda CORS Hatalar\u0131n\u0131 \u00c7\u00f6zme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/18964","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=18964"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/18964\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=18964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=18964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=18964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}