অবৈধ হোস্ট শিরোনাম যখন ngrok বিক্রিয়া ডেভ সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করে


188

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

Invalid Host Header 

আমি বিশ্বাস করি যে প্রতিক্রিয়া অন্য উত্স থেকে সমস্ত অনুরোধ ডিফল্টরূপে অবরুদ্ধ করে। কোন চিন্তা?

উত্তর:


551

আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি এবং দুটি সমাধান পেয়েছি যা সরাসরি ব্রাউজারে অ্যাপ্লিকেশন দেখার মতো কাজ করে

ngrok http 8080 -host-header="localhost:8080"
ngrok http --host-header=rewrite 8080

স্পষ্টতই 8080 প্রতিস্থাপন করুন আপনার চলমান যে কোনও বন্দর দিয়ে

যখন আমি এম্বেড থাকা পৃষ্ঠায় এটি ব্যবহার করি তখন এই সমাধানটি এখনও ত্রুটি উত্থাপন করে, যা প্রতিক্রিয়া অ্যাপ্লিকেশন থেকে bundle.js টান। আমি মনে করি যেহেতু এটি শিরোনামটি লোকালহোস্টে পুনরায় লেখায়, যখন এটি এম্বেড করা হয়, তখন এটি লোকালহোস্টের দিকে তাকিয়ে থাকে, যা অ্যাপটি আর চালু হয় না is


12
প্রথমটি যথেষ্ট ছিল
সুধীর

1
অন্য কেউ যদি এই সমস্যার মুখোমুখি হন: এটি কাজ করে তবে এটি কুকিজকে বিশৃঙ্খলা করে বলে মনে হচ্ছে এর অর্থ এটি লগইন প্রক্রিয়া এবং এই জাতীয় ব্যবস্থাগুলি ভঙ্গ করে!
পডিং করুন

এই সমস্যাটি কৌণিক 6 এর জন্যও ছিল এবং এটি কাজ করে, ধন্যবাদ
দ্রতা রুস্লান

1
-host-headerপোর্ট নম্বর সামনে আসা উচিত, তাই প্রথম উদাহরণ হওয়া উচিতngrok http -host-header="localhost:8080" 8080
শন বিন

1
./ngrok http --host-header = 8080 পুনর্লিখন
শ্রীজিথ বনাম

4

বিকল্প 1

আপনার যদি প্রমাণীকরণ ব্যবহার করার প্রয়োজন না হয় আপনি এনগ্রোক কমান্ডগুলিতে কনফিগারেশন যুক্ত করতে পারেন

ngrok http 9000 --host-header = পুনর্লিখন

অথবা

ngrok http 9000 --host-header = "লোকালহোস্ট: 9000"

তবে এক্ষেত্রে প্রমাণীকরণ আপনার ওয়েবসাইটে কাজ করবে না কারণ এনগ্রোক পুনরায় লেখার শিরোনাম এবং সেশনটি আপনার এনগ্রোক ডোমেনের জন্য বৈধ নয়

বিকল্প 2

আপনি যদি ওয়েবপ্যাক ব্যবহার করছেন তবে নীচের কনফিগারেশনটি যুক্ত করতে পারেন

devServer: {
    disableHostCheck: true
}

সেক্ষেত্রে প্রমাণীকরণের শিরোনামটি আপনার এনগ্রোক ডোমেনের জন্য বৈধ হবে


1

আমি এই সেট আপটি ব্যবহার করে এমন একটি প্রতিক্রিয়া অ্যাপ্লিকেশনটিতে ব্যবহার করেছি। আমি কনফিগার্ড.জেএস নামে একটি কনফিগার ফাইল তৈরি করেছি যাতে নিম্নলিখিতটি রয়েছে:

module.exports = {
ngrok: {
// use the local frontend port to connect
enabled: process.env.NODE_ENV !== 'production',
port: process.env.PORT || 3000,
subdomain: process.env.NGROK_SUBDOMAIN,
authtoken: process.env.NGROK_AUTHTOKEN
},   }

সার্ভারে ফাইলের প্রয়োজন।

const configstrp      = require('./config/configstrp.js');
const ngrok = configstrp.ngrok.enabled ? require('ngrok') : null;

এবং যেমন সংযোগ

if (ngrok) {
console.log('If nGronk')
ngrok.connect(
    {
    addr: configstrp.ngrok.port,
    subdomain: configstrp.ngrok.subdomain,
    authtoken: configstrp.ngrok.authtoken,
    host_header:3000
  },
  (err, url) => {
    if (err) {

    } else {

    }
   }
  );
 }

আপনার যদি কাস্টম ডোমেন না থাকে তবে সাবডোমেনটি পাস করবেন না

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