#mysql #reactjs #azure #fetch-api #azure-mysql-database
#mysql #reactjs #azure #fetch-api #azure-mysql-database
Вопрос:
РЕДАКТИРОВАТЬ: я изменил используемый порт, до 8081, но по-прежнему возникает проблема с ошибкой 405 в моем index.js. Организация выглядит следующим образом
├── ...
├── site
│ ├── server
│ │ ├── index.js
│ │ ├── ...
│ ├── wwwroot
│ │ ├── index.html
│ │ ├── .htaccess
│ │ ├── manifest.json
│ │ ├── web.config
│ │ ├── ...
Я впервые использовал MS Azure. Я выполнил проект на React.js с помощью базы данных MySQL. Теперь я отправил свою сборку веб-приложения в MS Azure, которая хорошо работала.
Но в этом приложении я использую запрос на выборку, который я не знаю, как настроить для MS Azure с авторизациями. Я попытался выполнить выборку по XX.XX.XXXX: 443 / точка.
Далее у меня ошибка 405. Я попытался поместить файл .htaccess: Header set Access-Control-Allow-Methods: POST, GET, OPTIONS, HEAD, но это ничего не изменило, метод post по-прежнему недоступен.
Я действительно надеюсь, что кто-нибудь найдет решение, спасибо.
Вот index.js важный код:
const version="1.0.0"
var app=require('express')();
var http=require('http').Server(app);
var mysql=require('mysql');
var bodyParser=require('body-parser');
var jwt = require('jsonwebtoken');
var cookieParser = require('cookie-parser');
var fs=require("fs");
app.use(bodyParser.json({limit:'50mb'}));
app.use(bodyParser.urlencoded({limit:'50mb',extended:true}));
app.use(cookieParser());
const CREATE_TABLE_USER = fs.readFileSync("src/sql_script/create_table_user.sql").toString();
const ...
var con=mysql.createConnection({
host:"host",
user:"user",
password:"password",
database:"database",
});
con.connect(function(err){if(err){console.log(err);}});
con.query(CREATE_TABLE_USER,function(err,result){if(err){console.log(err);}})
con.query...
app.use(function(req,res,next){
res.header('Access-Control-Allow-Methods: GET,POST,PATCH,PUT,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept,X-Auth-Token');
checkValidToken(req,res,next);
});
app.post('/dot',function(req,res){
if(req.body.action === "login"){login(req, res);}
...
});
http.listen(443,function(){console.log('app listening on port 443!');})
Вот функция извлечения приложения:
return fetch("XX:443/dot",{
method:"POST",
credentials:'same-origin',
body:JSON.stringify(info),
headers:{'Content-Type':'application/json'}
});
Комментарии:
1. Как вы выполняли развертывание? Если это веб-приложение, вы не можете прослушивать 8081 (открыты только 80 и 443); вам придется развернуть другим способом.
2. Я создал свое приложение react и разместил созданное веб-приложение на панели ms azure с уже созданным файлом хостинга, и оно отлично сработало. Итак, по вашему мнению, это сработало бы, если бы я использовал только 80 или 443 вместо 8081? Я пробую это прямо сейчас и вернусь, когда это будет сделано (плюс я уже создал правила доступа для 80 и 443 :))