javascript - 如何在网络主机中访问我的后端 API?
问题描述
我需要访问我的后端 API 以从电子邮件的联系表单发送信息,我将我的应用程序部署在一个名为 Kinghost 的网络主机中,它给了我两个 url,第一个是通用mywebaddr.com:port-number
的,第二个是mywebaddr.com/site
.
我已经尝试将这两个地址与函数路由一起使用,就像我在 localhost 中所做的那样,为了工作,我使用了http://localhost:4000/contact例如,但它没有用......
这是我的要求:
const baseUrl = 'http://mywebsiteurl.com/contact'
const initialState = {
message: {
name: '',
email: '',
subject: '',
main: ''
},
}
export default class ContactUs extends Component {
state = { ...initialState }
reset = () =>{
this.setState({message: initialState.message})
}
send = () => {
const message = this.state.message
const url = baseUrl
console.log(message)
axios.post(url, message)
.then(this.reset())
.then(alert('Message successfully sent!'))
}
这是我的 index.js(后端)
const express = require('express')
const app = express()
const consign = require('consign')
const port = 4005
consign()
.then('./config/middlewares.js')
.then('./api')
.then('./config/routes.js')
.into(app)
app.listen(port, () => {
console.log(port)
})
我的 middlewares.js 包含 cors
const bodyParser = require('body-parser')
const cors = require('cors')
module.exports = app => {
app.use(bodyParser.json())
app.use(cors())
}
实际上,我认为这不是因为我的代码本身,一旦我可以在 localhost 中完美执行所有内容,但不知何故我无法通过正确的 URL
我是节点新手,我猜不出我做错了什么,所以如果有人能帮助我,我会非常感激:)
解决方案
这不是堆栈溢出的问题,因为您的问题不在于应用程序,而在于您的网络。无论如何,您的 API 应用程序正在端口 4005 上运行。请确保该端口已向您的托管服务提供商开放。当您使用它时,请确保您的端口 4000 也已打开。
在您确认您的防火墙设置后,如果您仍然面临问题,请更新我的答案。
推荐阅读
- sharepoint - 无法使用 ActiveX 控件从我们的 Web 应用程序查看或编辑 ms office 软件中的文件
- python - 读取多个文件,字典值被覆盖(添加列名)
- java - 如何修复 setError 消息以不同的语言出现?
- java - 显示数组的值。获取奇怪的值
- php - 安全威胁 - composer/installed.json
- java - 在 Java 中解析 HATEOAS JSON
- ruby-on-rails - Rails 中的实例变量是否在每次刷新页面时都会重置?
- java - java.lang.String 在android app中接收数据时引入新字符
- reactjs - Immutable 和 Reselect 的正确模式是什么?
- python - ResNet50 模型在 keras 中没有通过迁移学习进行学习