php - 通过 axios 请求调用 php 文件已被 VUE CLI 3 中的 CORS 策略阻止
问题描述
我在 vue cli 3 中通过 axios get 方法调用 php 文件。我的服务器:节点 js 和 wamp 服务器我的应用程序(节点)路径http://localhost:8080/ 和我的WAMP路径http://localhost:80。
现在我得到了has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
,我看到了https://cli.vuejs.org/config/#devserver-proxy但它对我不起作用。
在我的vue.config.js
module.exports = {
devServer: {
proxy: 'http://localhost/'
}
}
和我在视图文件夹中的 PHP 文件路径 http://localhost:80/blog/src/views/php/imageUpload.php
我需要知道我在哪里做错了。
这是我得到的错误:
这是我的代码:
解决方案
CORS 机制用于强制客户端请求来自与默认部署服务器的域属于同一域的应用程序。换句话说,它是为了确保我们自己的应用程序只是访问我们 API 的应用程序并防止属于其他域的应用程序访问它。在您的情况下,客户端应用程序和服务器应用程序使用不同的端口。这打破了规则
请求是从运行在 8080 的应用程序向运行在 80 的服务器 API 发起的,尽管它们在同一个 localhost 中运行。端口不同。这就是引发 CORS 错误的原因。
请在您的 PHP 应用程序中将标头设置Access-Control-Allow-Origin
为localhost:8080
允许跨域请求。
推荐阅读
- javascript - 不在 GraalVM JS 运行时?
- python-3.x - 分类数据的响应编码
- mongodb - 如何在 MongoDB 中按键聚合数组值对象
- python - 如何使用 pandas 基于两个分类列的组合进行一次热编码?
- flutter - 带有 Node SDK 的 Flutter Web 中的 PayPal 按钮
- arrays - 如何修改下面的程序以接受数组值?
- android - android,如何监听通知权限改变事件
- java - 当我从junit调用它时,存储库为空
- sql - 将数字列添加到 teradata 中的日期列
- node.js - ubuntu安装后找不到nodejs