Почему я не могу получить никакого ответа от своего сервера узла в браузере chrome, но он отлично работает на postman?

#javascript #node.js #reactjs

Вопрос:

Это проект react. Я использую multer на стороне сервера (это REST API), и я получаю файлы в postman , но в браузере это не работает, и я попробовал простой запрос get работает в postman, но не в браузере. У меня есть это в хроме :

Этот сайт не может быть доступен на веб-странице по адресу http://localhost:6000/images/ad.jpg возможно, он временно отключен или, возможно, навсегда переехал на новый веб-адрес.

Я получил это сообщение в fire fox

Этот адрес ограничен

Этот адрес использует сетевой порт, который обычно используется для целей, отличных от просмотра веб-страниц. Firefox отменил запрос на вашу защиту.

 import express from "express" ; 
import cors from "cors" ; 
const app =express() ;  
const __dirname = path.dirname(fileURLToPath(import.meta.url));
dotenv.config() ;  
app.use(express.json({limit:"30mb",extended:true})) ; 
app.use(express.urlencoded({limit:"30mb",extended:true})) ; 
app.use(morgan("common")) ; 
app.use(helmet()) ; 
app.use("/api/user/",userRoute) ; 
app.use("/api/auth/",userAuth) ; 
app.use("/api/posts/",postRoute) ; 
 
const storage =multer.diskStorage({
    destination:(req,file,cb) =>{
        cb(null,"public/images")
    } ,
    filename:(req,file,cb)=>{
        cb (null,file.originalname)
    }
})
const upload = multer({storage}) ; 

app.post("/api/upload/",upload.single("file"), (req,res)=>{
    try {
        return res.status(200).json("file uploaded successfully")
    } catch (error) {
        console.log(error.message)
        
    }
})

const ClusterURL=process.env.CLUSTER_URL ; 

const PORT=process.env.PORT || 6000 ; 
mongoose.connect(ClusterURL,{useNewUrlParser:true,useUnifiedTopology:true,useFindAndModify:false,useCreateIndex:true})
.then(()=>app.listen(PORT,()=>console.log(`Successfully connected to port ${PORT}`)))
.catch((error)=>{console.log(error.message)}) ; 
  
app.use('/images' , express.static(path.join(__dirname, 'public/images')));
app.get("/bitch",(req,res)=>{
    res.json("yo bitch") ; 
}); ```

**i should get the images files in the browser in this address http://localhost:6000/images/ad.jpg**


 

 
 

Комментарии:

1. TLDR — ошибка в коде, который вы не опубликовали — когда он «работает в почтальоне» и не работает в браузере — обычно из — за CORS … или какой — либо другой ошибки кода на стороне клиента-вы показали код сервера, который явно работает, так как работает почтальон-теперь покажите код клиента, в котором существует проблема

Ответ №1:

6000 принадлежит к списку портов с ограниченным доступом.

Вы можете либо разрешить (что я бы не рекомендовал) этот порт на основе этого описания

Как разрешить ограниченный порт?

Вы можете создать настройки с помощью about:config и разрешить номер порта, который блокирует Firefox. Вот как:

(0) Выберите и скопируйте следующее имя предпочтения

сеть.безопасность.порты.запрещено.переопределение (1) На новой вкладке введите или вставьте about:config в адресную строку и нажмите Enter/Return. Нажмите на кнопку, обещая быть осторожным.

(2) В поле поиска над списком введите или вставьте порты и сделайте паузу, пока список фильтруется

Если существует вышеперечисленное предпочтение:

(3) Дважды щелкните его и добавьте запятую в конец списка, за которой следует номер порта, который вам нужно разрешить. Никаких пробелов. Затем нажмите кнопку ОК.

Если вышеперечисленных предпочтений не существует:

(4) щелкните правой кнопкой мыши в любом месте страницы и выберите Создать > Строка

(5) В диалоговом окне имя предпочтения вставьте имя, с которым вы справились, и нажмите кнопку ОК

(6) В диалоговом окне значение предпочтения введите номер порта, который вам нужно разрешить, затем нажмите кнопку ОК.

Или выберите другой порт

Комментарии:

1. спасибо , я только что решил проблему, Но почему некоторые порты ограничены ?