我正在尝试从vue实例内置方法内部调用api
但它向我展示了一些错误
我正处于训练阶段,这对我来说是全新的
错误: CORS策略已阻止从源'null‘访问'file:///home/wohlig/Documents/Projects/Training/Rough/Vue/apicalling/app.js’处的脚本:仅以下协议方案支持跨域请求: http、data、chrome、chrome-extension、https。
获取file:///home/wohlig/Documents/Projects/Training/Rough/Vue/apicalling/app.js net::ERR_FAILED
我正在尝试从我的数据库中检索数据
app.html
<html>
<head>
<script src = "https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div>
</div>
<script type="module">
import { nav } from './app.js'
var vm = new Vue({
data: {
datas:"gsdgsdg"
},
created(){
nav.getOneId(function (err, data){
if(data){
console.log("afasfsafasfasf+++++++++="+data)
}
})
console.log("dfafasdfadf")
}
})
</script>
</body>
</html>
app.js
import axios from "axios";
var adminUrl = "http://localhost:3000/";
export default {
getOneId: callback => {
return axios
.get(adminUrl + "movie/getOneId/5d9d736963a1f027693e7fae", {})
.then(data => {
callback(null, data);
})
.catch(err => {
callback(err);
});
}
}发布于 2019-10-19 20:53:06
发生此错误的原因是您直接在浏览器中打开app.html。例如,当您双击并打开它时。
相反,您必须在项目所在的目录中启动一个本地服务器。
如果您使用的是项目模板,则它很可能已经具有已配置的npm start命令。在本例中,使用该命令启动开发服务器。否则,您可以转到app.html所在的文件夹并运行npx live-server -这将服务于当前目录。我假设您已经安装了nodejs (node -v检查),否则该命令将不会运行
发布于 2019-10-19 20:10:54
尝试在package.json“proxy”中使用这一行:"http://192.165.1.220:28080",
此主机和端口将位于walmart的何处,并使用npm安装“http-proxy-”,然后重试。
CORS:解释跨来源资源共享(CORS)是一种机制,它使用额外的HTTP标头来告诉浏览器给予在一个来源运行的web应用程序访问来自不同来源的选定资源的权限。当web应用程序请求的资源与其own.Means具有不同的来源(域、协议或端口)时,web应用程序将执行跨域HTTP请求。您的本地主机正在尝试连接其他域,因此为了安全起见,需要启用它以连接到它们的IP。
更清晰、更宽泛的观点请访问:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
此外,您应该使用http协议,而不是file:///home/wohlig/Documents/Projects/Training/Rough/Vue/apicalling/app.js可以通过此https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp
https://stackoverflow.com/questions/58463219
复制相似问题