Javascript 在Express应用程序中添加参数时出现CORS错误
我一点也不明白为什么这不起作用 我在Heroku上有一个express应用程序,基本上就是这样做的Javascript 在Express应用程序中添加参数时出现CORS错误,javascript,node.js,express,axios,cors,Javascript,Node.js,Express,Axios,Cors,我一点也不明白为什么这不起作用 我在Heroku上有一个express应用程序,基本上就是这样做的 var urlMetadata = require('url-metadata') var express = require('express') var cors = require('cors') var app = express() app.use(cors()) app.get('/products', function (req, res, next) { res.j
var urlMetadata = require('url-metadata')
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/products', function (req, res, next) {
res.json({
msg: 'This is CORS-enabled for all origins!'
})
})
app.get('/prod/:url', function (req, res, next) {
var url = decodeURI(req.params.url);
urlMetadata(url).then(
function (metadata) {
res.json({
metadata
});
},
function (error) {
console.log(error)
})
})
客户端
axios
.get(`https://git.heroku.com/egosmos-meta.git/prod`, {
params: {
url,
},
})
.then((response) => {
console.log(response);
});
axios
.get(`https://egosmos-meta.herokuapp.com/products`)
.then((response) => {
console.log(response);
});
这就是我得到的
所以/products
可以工作,但是/prod/:url
抛出了一个CORS错误
谢谢你的帮助 Axios中的
params
定义了查询参数,例如?url=http://example.com
但您的Express应用程序预期会出现错误
将客户端代码更改为以下内容
axios.get(`https://git.heroku.com/egosmos-meta.git/prod/${encodeURIComponent(url)}`)
您得到一个CORS错误,因为您没有用于
/prod?url=…
的路由,所以CORS中间件没有启动。尝试使用CORS选项
var cors=require('cors')
var公司={
来源:'https://git.heroku.com',
options successstatus:200//一些传统浏览器(IE11、各种智能电视)在204上阻塞
}
应用程序使用(cors(corsOptions))
如果是axios,请尝试
axios.get(
https://git.heroku.com/egosmos-meta.git/prod/${url}
)。然后()非常感谢您的快速回答。你的解释很有道理,很有用。但不幸的是,这并没有解决我的问题。我想知道出了什么问题。@Albrich请更新问题中报告的代码和错误消息/屏幕截图