অনুরোধ শিরোনামের ক্ষেত্রের অ্যাক্সেস-নিয়ন্ত্রণ-মঞ্জুরি-শিরোনামগুলি প্রিফলাইট প্রতিক্রিয়াতে নিজেই অনুমোদিত নয়


234

আমি একাধিকবার সিওআরএস ইস্যু নিয়ে এসেছি এবং সাধারণত এটি সমাধান করতে পারি তবে আমি এমইএন স্ট্যাকের দৃষ্টান্ত থেকে এটি দেখতে সত্যিই বুঝতে চাই।

এই জিনিসগুলি ধরার জন্য আমি কেবল আমার এক্সপ্রেস সার্ভারে মিডলওয়্যার যুক্ত করার আগে, তবে দেখে মনে হচ্ছে এমন কিছু প্রি-হুক রয়েছে যা আমার অনুরোধগুলি ত্রুটিযুক্ত করছে।

শিরোনামের ক্ষেত্রের জন্য অনুরোধ করুন অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-শিরোনামগুলিকে অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-শিরোনামগুলি প্রিফলাইট প্রতিক্রিয়াতে অনুমোদিত নয়

আমি ধরে নিয়েছিলাম যে আমি এটি করতে পারি:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Headers","*")
})

বা সমতুল্য তবে এটি এটি ঠিক করবে বলে মনে হয় না। আমি অবশ্যই চেষ্টা করেছি

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Headers","Access-Control-Allow-Headers")
})

এখনও ভাগ্য নেই।

উত্তর:


245

আপনি যখন কাস্টম অনুরোধ শিরোনামের সাথে খেলা শুরু করবেন তখন আপনি একটি কর্স প্রিফলাইট পাবেন। এটি একটি অনুরোধ যা HTTP OPTIONSক্রিয়া ব্যবহার করে এবং বেশ কয়েকটি শিরোনাম অন্তর্ভুক্ত করে যার মধ্যে একটিAccess-Control-Request-Headers মধ্যে একটি শিরোনামকে ক্লায়েন্ট অনুরোধে অন্তর্ভুক্ত করতে চায় এমন শিরোনাম তালিকাভুক্ত করে।

এই কাজটি করার জন্য আপনাকে উপযুক্ত সিওআরএস শিরোনাম দিয়ে সেই সিওআরএস প্রিফলাইটের জবাব দিতে হবে। যার মধ্যে একটি সত্যই Access-Control-Allow-Headers। এই শিরোনামটিতে Access-Control-Request-Headersশিরোনামের (বা আরও বেশি) একই মান থাকতে হবে ।

https://fetch.spec.whatwg.org/#http-cors-protocol এই সেটআপটিকে আরও বিশদভাবে ব্যাখ্যা করে।


41
আপনি যদি ক্রোম ব্যবহার করেন এবং নিশ্চিত হন না যে কোন শিরোলেখদের জন্য অনুরোধ করা হচ্ছে, বিকাশকারী কনসোলটি ব্যবহার করুন, নেটওয়ার্ক কল করা হচ্ছে তা নির্বাচন করুন এবং আপনি কী শিরোনাম দ্বারা অনুরোধ করা হচ্ছে তা দেখতে পারেনAccess-Control-Request-Headers
লিওনেল মরিসন

5
বিকাশকারী কনসোল বিকল্পটি একটি ভাল। আপনি সার্ভারে অনুরোধ অবজেক্টে অ্যাক্সেস পেয়ে এবং শিরোনামের মানগুলি ডাম্প করে, তবে বিশেষত "অ্যাক্সেস-কন্ট্রোল-রিকোয়েস্ট-শিরোনাম" এর শিরোনাম মান দ্বারা আপনি যা প্রয়োজন তা সন্ধান করতে পারেন। তারপরে, আপনার প্রতিক্রিয়াতে এটি অনুলিপি করুন / পেস্ট করুন set সেটহেইডার ("অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-শিরোনামগুলি", "{এখানে পেস্ট করুন)")
সফটওয়্যার নবীগণ

7
উদাহরণস্বরূপ!
ডেমোডাভ

5
@ ডেমোডাভ আমার জন্য এটির উদাহরণheader("Access-Control-Allow-Headers: Content-Type")
জোশুয়া

1
@ লিওনেলমরিসন, ম্যাচ শিরোনামগুলির জন্য ক্রোম দেব সরঞ্জাম ব্যবহার। ভাল ব্যাখ্যা !!!
সাবিনা চান্দলা

119

এটি কাজ করতে এটি আপনার যুক্ত করতে হবে।

response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

সার্ভারে হোস্ট করা পরিষেবাটি কোনও অন্য ডোমেনের ব্রাউজার থেকে অ্যাক্সেস করার অনুমতি দেওয়া আছে কিনা তা পরীক্ষা করতে ব্রাউজারটি প্রিফলাইট অনুরোধটি (পদ্ধতির ধরণের অপশন সহ) প্রেরণ করে। প্রিফলাইট অনুরোধের প্রতিক্রিয়া হিসাবে আপনি উপরের শিরোনামগুলি ইনজেকশন দিলে ব্রাউজারটি বুঝতে পারে যে আরও কল করা ঠিক আছে এবং আমি আমার প্রকৃত জিইটি / পোস্ট কলটির জন্য একটি বৈধ প্রতিক্রিয়া পাব। আপনি যে ডোমেনে অ্যাক্সেস-কন্ট্রোল-অলজিন-অরিজিন "," লোকালহোস্ট, xvz.com "ব্যবহার করে * ব্যবহার করে মঞ্জুরিপ্রাপ্ত তা সীমাবদ্ধ করতে পারেন (* সমস্ত ডোমেইনে অ্যাক্সেস মঞ্জুর করবেন)


7
আপনি *জন্য ...-Originএবং trueজন্য একত্রিত করতে পারবেন না ...-Credentials। এটি শংসাপত্রবিহীন অনুরোধগুলির জন্য ব্যর্থ হবে না তবে এটি শংসাপত্রিত অনুরোধগুলির জন্যও কাজ করবে না। আমার উত্তরে পোস্ট করা লিঙ্কটি দেখুন।
অ্যান

ধন্যবাদ মনীশ অরোরা, আমি আপনার এপিআই তে আপনার সমাধানটি ব্যবহার করেছি এবং এটি কার্যকর হয়েছে। HTTPContext.Response.Heeda.Add ("অ্যাক্সেস-কন্ট্রোল-অনুমতি-পদ্ধতিগুলি", "জিইটি, হেড, বিকল্প, পোস্ট, পুট"); HttpContext.Response.Heeda.Add ("অ্যাক্সেস-কন্ট্রোল-অনুমতি-শিরোনাম", "অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-শিরোনাম, উত্স, গ্রহণ, এক্স অনুরোধ-সহ, সামগ্রী-প্রকার, অ্যাক্সেস-নিয়ন্ত্রণ-অনুরোধ-পদ্ধতি, অ্যাক্সেস -Control-অনুরোধ-শিরোলেখ "); HTTPContext.Response.Heeda.Add ("অ্যাক্সেস-কন্ট্রোল-অরিজিন-অরিজিন", " লোকালহোস্ট: 4200" );
রামকৃষ্ণঙ্কট

1
এটি সার্ভারের পক্ষ থেকে বলছে যে এই সমস্ত প্রতিক্রিয়া শিরোনাম মংটি "প্রিফলাইট" এর কারণে প্রয়োজনীয়? কেন? বিশেষত পুরোপুরি স্ট্যান্ডার্ড হেডারগুলির জন্য? কিছু সময়ের জন্য এইচটিটিপি ব্যবহার করা আমার কাছে খবর যে এত বেশি বয়লারপ্লেটের প্রয়োজন।
সামান্থা অ্যাটকিনস

@ মানিশ আমার কাছে অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-শিরোনামগুলির মানগুলির একটি আলাদা সেট ছিল যা কাজ করে না। আপনার মান সেট করেছে। সময় এবং হতাশার জন্য ধন্যবাদ।
আজাকগাইম

কিছু শিরোলেখ ওয়াইল্ডকার্ড করার কোন উপায় আছে কি? সমস্ত শিরোলেখ ওয়াইল্ডকার্ড করা কি খারাপ ধারণা? যেমন response.setHeader("Access-Control-Allow-Headers", "*")? এটি করার সুরক্ষা জড়িত কী?
ভাদোরোয়েস্ট

78

এই সমস্যাটির সাথে সমাধান করা

 "Origin, X-Requested-With, Content-Type, Accept, Authorization"

বিশেষত আমার প্রকল্পে (এক্সপ্রেস.জেএস / নোডেজ)

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
  next();
});

হালনাগাদ:

প্রতিবার ত্রুটি: Access-Control-Allow-Headers is not allowed by itself in preflight responseত্রুটি আপনি ক্রোম বিকাশকারী সরঞ্জামটির মধ্যে কী ভুল তা দেখতে পারেন :
এখানে চিত্র বর্ণনা লিখুন

উপরের ত্রুটিটি নিখোঁজ রয়েছে Content-Typeসুতরাং এতে স্ট্রিং যুক্ত Content-TypeকরুনAccess-Control-Allow-Headers


1
এটি সবার জন্য কাজ করবে না। অ্যাক্সেস-নিয়ন্ত্রণ-অনুরোধ-শিরোনামের মান পরিবেশের ভিত্তিতে পরিবর্তিত হতে পারে। সার্ভারে অনুরোধ অবজেক্টে অ্যাক্সেস পান এবং "অ্যাক্সেস-নিয়ন্ত্রণ-অনুরোধ-শিরোনাম" শিরোনামের মানগুলিকে ডাম্প করুন dump তারপরে, আপনার প্রতিক্রিয়াতে এটি অনুলিপি করুন / পেস্ট করুন set সেটহেইডার ("অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-শিরোলেখগুলি", "{এখানে পেস্ট করুন)")
সফটওয়্যার নবীগণ

1
এছাড়াও আপনি ব্রিটিশ উপায়ে নয় আমেরিকান উপায়ে বানান অনুমোদনের বিষয়টি নিশ্চিত করুন। এটা আমার জীবনের আধ ঘন্টা আমি ফিরে পাবেন না। থেক্স ইউএসএ! [দীর্ঘশ্বাস]
জিওএইডসিক

14

গৃহীত উত্তরটি ঠিক আছে তবে এটি বুঝতে আমার অসুবিধা হয়েছিল। সুতরাং এটি পরিষ্কার করার জন্য এখানে একটি সাধারণ উদাহরণ is

আমার এজাক্স অনুরোধে আমার কাছে একটি মানক অনুমোদনের শিরোনাম ছিল।

$$(document).on('ajaxStart', function(e){
var auth_token = localStorage.getItem(SB_TOKEN_MOBILE);
if( auth_token ) {
    var xhr = e.detail.xhr;

    xhr.setRequestHeader('**Authorization**', 'Bearer ' + auth_token);
}

এই কোডটি প্রশ্নের ত্রুটি তৈরি করে। আমার নোডেজ সার্ভারে আমাকে যা করতে হয়েছিল তা হ'ল অনুমোদিত শিরোনামগুলিতে অনুমোদন যুক্ত করা:

res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type,**Authorization**');

6

অন্যান্য উত্তর যুক্ত করতে। আমার একই সমস্যা ছিল এবং এটিই আমার কোড এক্সপ্রেস সার্ভারে আরএসটি কলের অনুমতি দেওয়ার জন্য ব্যবহৃত কোড:

app.all('*', function(req, res, next) {
  res.header('Access-Control-Allow-Origin', 'URLs to trust of allow');
  res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  if ('OPTIONS' == req.method) {
  res.sendStatus(200);
  } else {
    next();
  }
});

এই কোডটি মূলত যা করে তা হ'ল সমস্ত অনুরোধগুলি বাধা দেয় এবং সিওআরএস শিরোনাম যুক্ত করে, তারপরে আমার সাধারণ রুটগুলি দিয়ে চালিয়ে যান। যখন কোনও বিকল্পের অনুরোধ থাকে তখন এটি কেবল সিআরএস শিরোনাম দিয়ে সাড়া দেয়।

সম্পাদনা: আমি একই মেশিনে দুটি পৃথক নোডেজ এক্সপ্রেস সার্ভারের জন্য এই ফিক্সটি ব্যবহার করছিলাম। শেষ পর্যন্ত আমি একটি সাধারণ প্রক্সি সার্ভার দিয়ে সমস্যাটি স্থির করেছি।


ধন্যবাদ! আপনি কীভাবে একটি সাধারণ প্রক্সি সার্ভার ব্যবহার করেছেন তা ব্যাখ্যা করতে পারেন?
austin_ce

5

আমি কেবল এএসপি-নেট এর প্রসঙ্গে নিজেই এই ইস্যুটিতে ছড়িয়ে পড়েছি তা নিশ্চিত করে নিন যে আপনার ওয়েবকনফাইগটি এর মতো দেখাচ্ছে:

  <system.webServer>
<modules>
  <remove name="FormsAuthentication" />
</modules>

<handlers>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <!--<remove name="OPTIONSVerbHandler"/>-->
  <remove name="TRACEVerbHandler" />
  <!--
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
  -->
</handlers>

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type, Authorization" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
  </customHeaders>
</httpProtocol>

Access-Control-Allow-Headersকীটির অনুমোদনের মানটি লক্ষ্য করুন । আমি অনুমোদনের মানটি অনুপস্থিত ছিল, এই কনফিগারটি আমার সমস্যাটি সমাধান করে।


5

খুব ভাল আমি একটি সাইলেক্স প্রকল্পে এটি ব্যবহার করেছি

$app->after(function (Request $request, Response $response) {
        $response->headers->set('Access-Control-Allow-Origin', '*');
        $response->headers->set("Access-Control-Allow-Credentials", "true");
        $response->headers->set("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
        $response->headers->set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
    });

2
যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে, কীভাবে এবং / বা কেন এটি সমস্যার সমাধান করে তা সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করলে উত্তরের দীর্ঘমেয়াদী মান উন্নত হবে।
বাদচাডাবড়া

4

ক্রোমে:

প্রিফ্লাইট প্রতিক্রিয়াতে এক্সেস-কন্ট্রোল-মঞ্জুরি-শিরোনাম দ্বারা শিরোনাম ক্ষেত্রের এক্স-রিকুয়েস্টড-অনুরোধের অনুমতি নেই।

আমার জন্য, এই ত্রুটিটি এই কলের ইউআরএলটিতে একটি অনুসরণকারী স্থান দ্বারা ট্রিগার হয়েছিল ।

jQuery.getJSON( url, function( response, status, xhr ) {
   ...
}

3

কেবলমাত্র যুক্ত করার জন্য আপনি সেই শিরোনামগুলিকে ওয়েবপ্যাক কনফিগারেশনের ফাইলটিতেও রাখতে পারেন। আমি যেমন আমার ওয়েবপ্যাক ডেভ সার্ভার চালাচ্ছিলাম তখন সেগুলি আমার দরকার ছিল।

devServer: {
    headers: {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Credentials": "true",
      "Access-Control-Allow-Methods": "GET,HEAD,OPTIONS,POST,PUT",
      "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept, Authorization"
},

3

res.setHeader ('অ্যাক্সেস-কন্ট্রোল-হেডারের অনুমতি দিন', '*');


2

জ্যাঙ্গো, প্রতিক্রিয়া এবং জ্যাঙ্গো-কর্স-শিরোনাম ব্যবহার করে ওপিতে বর্ণিত ত্রুটিটি পেয়েছি। এটি এই স্ট্যাক দিয়ে ঠিক করতে, নিম্নলিখিতটি করুন:

Settings.py এ অফিশিয়াল ডকুমেন্টেশন অনুযায়ী নীচে যুক্ত করুন ।

from corsheaders.defaults import default_headers

CORS_ALLOW_HEADERS = default_headers + (
'YOUR_HEADER_NAME',
)

2

আমরা যখন অনুরোধের জন্য কাস্টম শিরোনাম করি তখনই এই সমস্যাটি দেখা দেয় his HTTP OPTIONS এবং বিভিন্ন হেডার অন্তর্ভুক্ত করা হয়েছে।

এই অনুরোধের জন্য প্রয়োজনীয় শিরোনাম হ'ল Access-Control-Request-Headersএটি প্রতিক্রিয়া শিরোনামের অংশ হওয়া উচিত এবং সমস্ত উত্স থেকে অনুরোধের অনুমতি দেওয়া উচিত। কখনও কখনও এটি Content-Typeপ্রতিক্রিয়া শিরোনাম পাশাপাশি প্রয়োজন । সুতরাং আপনার প্রতিক্রিয়া শিরোনামটি এমন হওয়া উচিত -

response.header("Access-Control-Allow-Origin", "*"); // allow request from all origin
response.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
response.header("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin, X-Requested-With, Content-Type, Accept, Authorization");

1

পোস্ট এপিআই কলগুলিতে আমরা অনুরোধের বডিতে ডেটা প্রেরণ করছি। সুতরাং আমরা যদি কোনও এপিআই কলগুলিতে কোনও অতিরিক্ত শিরোনাম যুক্ত করে ডেটা প্রেরণ করব। তারপরে প্রথমে অপশন এপিআই কল আসবে এবং তারপরে পোস্ট কল হবে। অতএব, আপনাকে প্রথমে অপশন এপিআই কলটি পরিচালনা করতে হবে।

আপনি ফিল্টার লিখে এবং এর ভিতরে আপনাকে অপশন কল এপিআই কলটি পরীক্ষা করতে হবে এবং 200 ওকে স্থিতি ফিরিয়ে আনতে সমস্যাটি পরিচালনা করতে পারবেন। নীচে নমুনা কোডটি দেওয়া হল:

package com.web.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.catalina.connector.Response;

public class CustomFilter implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
            throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest httpRequest = (HttpServletRequest) req;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type");
        if (httpRequest.getMethod().equalsIgnoreCase("OPTIONS")) {
            response.setStatus(Response.SC_OK);
        }
        chain.doFilter(req, res);
    }

    public void init(FilterConfig filterConfig) {
        // TODO
    }

    public void destroy() {
        // Todo
    }

}

1

আপনি যদি অনুরোধ শিরোনামগুলিতে একটি কাস্টম শিরোলেখ যুক্ত করার চেষ্টা করছেন, আপনাকে সার্ভারকে জানাতে হবে যে নির্দিষ্ট শিরোনামটি সঞ্চালনের অনুমতি রয়েছে। এটি করার জায়গাটি সেই ক্লাসে রয়েছে যা অনুরোধগুলি ফিল্টার করে। নীচে প্রদর্শিত উদাহরণে, কাস্টম শিরোনামের নাম "টাইপ":

public class CorsFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin",  request.getHeader("Origin"));
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,PATCH,OPTIONS");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, Authorization, type ");
        response.setHeader("Access-Control-Expose-Headers","Authorization");
    }
}

1

প্রায় এক দিন ব্যয় করার পরে, আমি কেবলমাত্র খুঁজে পেয়েছি যে নীচের দুটি কোড যুক্ত করা আমার সমস্যার সমাধান করেছে।

এটি Global.asax এ যুক্ত করুন

protected void Application_BeginRequest()
{
  if (Request.HttpMethod == "OPTIONS")
  {
    Response.StatusCode = (int)System.Net.HttpStatusCode.OK;             
    Response.End();
  }
}

এবং ওয়েব কনফিগারেশনে নীচে যুক্ত করুন

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />        
    <add name="Access-Control-Allow-Methods" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type, Authorization" />
  </customHeaders>
</httpProtocol>

1

আমিও কৌনিক 6.. এ একই সমস্যার মুখোমুখি হয়েছি আমি নীচের কোডটি ব্যবহার করে সমস্যাটি সমাধান করেছি। घटक.ts ফাইলে কোড যুক্ত করুন।

import { HttpHeaders } from '@angular/common/http';

headers;

constructor() {
    this.headers = new HttpHeaders();
    this.headers.append('Access-Control-Allow-Headers', 'Authorization');
}

getData() {
    this.http.get(url,this.headers). subscribe (res => {
    // your code here...
})}

0

আমি একই সমস্যার মুখোমুখি ছিলাম।

আমি একটি সাধারণ পরিবর্তন করেছি।

  <modulename>.config(function($httpProvider){
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
});

0

বার্তাটি স্পষ্ট যে API এ 'অনুমোদন' অনুমোদিত নয়।
অ্যাক্সেস-নিয়ন্ত্রণ-মঞ্জুরি-শিরোনাম সেট করুন : "সামগ্রী-প্রকার, অনুমোদন"


0
const express = require('express')
const cors = require('cors')
const app = express()

app.get('/with-cors', cors(), (req, res, next) => {
  res.json({ msg: 'WHOAH with CORS it works! 🔝 🎉' })
})

Get ফাংশনে কর যুক্ত করা আমার পক্ষে কাজ করেছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.