【发布时间】:2020-03-29 01:54:00
【问题描述】:
我在同一个 VPS (ubuntu)、同一个域上有 2 个应用程序。首先是 Node.js 应用程序,在端口:80 上运行 第二个是在端口:3000 的 apache 下运行的 Python (Flask) 应用程序 python 应用程序有一个简单的 API 和一个端点 /test。
我正在尝试使用 Postman 直接在浏览器中或从其他服务器连接到端点,并且它可以正常工作。但是当尝试从同一服务器的节点应用程序连接时,我得到 404。CORS 被禁用。
有什么问题?
例如:
我的 Flask 应用程序的端点在 http://myvps.com:3000/test 上运行
尝试在计算机或其他服务器上获取数据时
fetch('http://myvps.com:3000/test').then(...) 它有效。此外,当我在浏览器中访问 myvps.com:3000/test 时,它也可以正常工作。
但是,当在我的 Node 应用程序上(在保存服务器上但端口:80-http://myvps.com)上执行完全相同的操作 fetch('http://myvps.com:3000/test').then(...) 时,获取返回 404 - 未找到。任何不同的外部 API 都可以使用。
虚拟主机配置:
<VirtualHost [server_ip]:3000>
ServerName ....
ErrorLog /home/www/python/logs/error.log
CustomLog /home/www/python/logs/access.log combined
WSGIDaemonProcess pythonapp user=www-data group=www-data threads=5 python-path=/home/www/python/pythonapp:/home/www/python/pythonapp/env/lib/python3.6/site-packages
WSGIProcessGroup pythonapp
WSGIScriptAlias / /home/www/python/pythonapp/pythonapp.wsgi application-group=pythonapp process-group=pythonapp
<Directory /home/www/python/>
Order Allow,Deny
Allow from all
Require all granted
</Directory>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header set Access-Control-Max-Age "1000"
Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
</VirtualHost>
Node.js 应用正在 express 上运行。
【问题讨论】:
-
请提供一个最小的例子
-
当然,刚刚在问题中添加了示例
-
你在 localhost 上测试过吗?
-
我们在这里有点盲目。可以添加虚拟主机配置吗?
-
尚未在本地主机上测试。刚刚在问题中添加了虚拟主机
标签: python node.js apache ubuntu flask