gin跨域时Get,Post正常Put,Delete被阻止的问题解决

2023-05-16

问题表现

同一个项目请求同一个服务时,Get和Post请求正常,但是Put和Delete一直报跨域错误的问题

Access to XMLHttpRequest at 'http://127.0.0.1:8011/api/organization' from origin 'http://localhost:9527' has been blocked by CORS policy: Method PUT is not allowed by Access-Control-Allow-Methods in preflight response.

解决方案

根据问题描述,很清楚是PUT方法不行,于是去查看服务端的跨域中间件, 发现没有在Header中明确指定Access-Control-Allow-Headers,于是添加Allow Methods的设置,, 以下是完整的跨域中间件:

package middleware

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func CORSMiddleware() gin.HandlerFunc {
	return func(ctx *gin.Context) {
		ctx.Writer.Header().Set("Access-Control-Allow-Origin", "*")
		ctx.Writer.Header().Set("Access-Control-Max-Age", "86400")
		ctx.Writer.Header().Set("Access-Control-Allow-Headers", "*")
		ctx.Writer.Header().Set("Access-Control-Allow-Methods", "*") //出问题是缺少这里
		ctx.Writer.Header().Set("Access-Control-Allow-Credentials", "true")

		if ctx.Request.Method == http.MethodOptions {
			ctx.AbortWithStatus(200)
		} else {
			ctx.Next()
		}
	}
}

反思

问题本身没有什么,但有意思的是过程,因为我先写的服务端,且确定加了跨域的中间件,且在写前端的时候,之前常用的Get和Post访问都没有出现跨域的问题,所以问题出现时,没有第一时间联系到时服务端的问题。
网上查了些信息,整体描述是因为Get和Post的方法是默认的,所以及时没有明确设置也可以通过,但是其他的方法就需要显示的设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gin跨域时Get,Post正常Put,Delete被阻止的问题解决 的相关文章

  • jQuery.ajax 发送 OPTIONS 和 POST,如何使用 Express.js (Node.js) 处理

    每当我的应用程序向服务器发送 ajax 请求时 ajax url config api url 1 register type POST contentType application json data some JSON data he
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 在 Python 中将 GET 更改为 POST (Flask)

    我正在尝试创建一个简单的应用程序 其中在服务器上生成整数数组并将其发送到客户端 以下是 app py 中的一些示例 工作 代码 from flask import Flask render template request url for
  • 如何在 Android 上的 HttpPost 中发送 unicode 字符

    我试图在我的应用程序中允许多语言支持 这会发出 HTTP post 来上传新消息 我需要做什么才能支持日语和其他非拉丁语语言 我的代码目前看起来像这样 note the msg string is a JSON message by the
  • WebApi 添加另一个 Get 方法

    我有一个非常标准的 WebApi 可以执行一些基本的 CRUD 操作 我正在尝试添加一些不同类型的查找 但不太确定它应该如何完成 这是我目前的FoldersController public class FoldersController
  • 提交简单 PHP 表单时出现禁止错误

    我有一个不复杂的问题 这似乎比应有的更复杂 我有一个简单的表单 用于向网站添加内容 有些字段需要输入html 然而 当您在表单的不同部分输入某些 html 元素时 它会认为它讨厌您并抛出禁止的 403 错误 这是下面的表格
  • axios响应不显示数据

    我正在学习使用 Axios 但输出如图所示 当我使用 fetch 时 输出正常 我该如何修复 Axios const axios require axios default const url https jsonplaceholder t
  • jQuery POST 到 CakePHP $this->data

    我正在尝试使用 jQuery 后置函数将表单发布到 CakePHP 脚本 像这样 jQuery submit btn click function Code to prevent redirect dataString test testd
  • 为什么在.htaccess中使用[QSA]时$_POST为空?

    我在 htaccess 中有以下内容 RewriteCond REQUEST URI app index php RewriteRule htm index php url 0 QSA L 一切都很好 但结果 URL 的 POST 为空 我
  • 在 Go 中读取请求负载?

    我正在使用文件上传器 需要请求负载中的详细信息来裁剪它 func Upload w http ResponseWriter r http Request reader err r MultipartReader if err nil htt
  • WordPress 标题中的 & 符号破坏了我对社交媒体链接的共享

    我希望得到一些帮助来解决一些让我发疯的编码问题 我最好在我的 WordPress 帖子标题中写 而不是 and 但是写出 符号会破坏我们在 twitter facebook 和 google plus 上的帖子共享链接 Facebook 能
  • Spotify:使用网络 API 登录不接受重定向 URL

    我正在尝试使用 Web API 登录 Spotify 因为我不需要会话对象 在我的授权方法中 我需要传入重定向 url 但 GET 请求中不接受 iOS 重定向 url 的格式化方式 func authorize create the ur
  • 使用 jQuery 将值发送到 $_GET

    我正在使用一个 PHP 脚本 该脚本正在通过 GET 等待两个值 我正在尝试使用 jQuery 传递这两个值 而这正是我不太擅长的地方 这是我得到的代码 有人能指出我正确的方向吗 谢谢 function xrate id rating aj
  • 向 Apache HttpPost 添加参数

    我正在尝试将文件发送到 Servlet 除了这个文件之外 我还必须发送一些参数 即名称 ID 日期和其他一些参数 我在客户端使用 HttpClient 在服务器端使用 ServerFileUpload 这是客户端代码 String url
  • Memcached的get和put方法是线程安全的吗

    多线程环境下memcached中的key是否有可能出现乱码 如果是这样 如何以最短的同步时间避免它 使用Java客户端访问memcached服务器 不会 Memcache 将返回某人之前写入的值 而不是乱码 如果您获取 修改 放置 则无法保
  • ajax“GET”调用返回 jsonp 正常,但回调产生“未定义”数据

    我正在使用来自 html 页面的 ajax jquery 调用来访问跨域 Web 服务 虽然我可以使用 firebug 查看 jsonp 数据 但我无法将其加载到变量中 甚至无法显示它 出于调试目的 尝试使用 jsonpCallback s
  • Play框架2.0 Form.bindFromRequest().get()返回空模型

    我需要从套接字通信接收相同的 POST 数据 这是发送 POST 并接收响应的代码 并且似乎工作正常 String data t URLEncoder encode Title UTF 8 u URLEncoder encode http
  • 通话后返回App

    我正在尝试通过应用程序拨打电话 我希望它在通话后返回到应用程序 我在这个论坛问过这个问题 但我不明白答案 如何在 Android 中拨打电话并在通话结束后返回到我的活动 https stackoverflow com questions 1
  • HTTP POST 操作出现错误代码 302

    我有一个 perl 脚本 它将数据发送到我用 php 编写的 Web 服务 这是代码 use LWP UserAgent my ua LWP UserAgent gt new my server endpoint http example
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可

随机推荐

  • Mybatis-plus扩展

    这玩意类似于mp自带的basemapper Copyright c 2011 2020 baomidou jobob 64 qq com lt p gt Licensed under the Apache License Version 2
  • Photoshop中的“磁性套索”背后算法的OpenCV实现

    本文由Markdown语法编辑器编辑完成 1 PS中的磁性套索工具简介 xff1a 本示例是基于Photoshop CS4的工具栏 xff1a 2 磁性套索工具背后的算法Livewire原理 xff1a 3 Livewire Segment
  • 轻量化网络mobileNet与ShuffleNet

    摘要 最近出了一篇旷视科技的孙剑团队出了一篇关于利用Channel Shuffle实现的卷积网络优化 ShuffleNet 我关注了一下 xff0c 原理相当简单 它只是为了解决分组卷积时 xff0c 不同feature maps分组之间的
  • 人脸比对(1:N)

    第 1章 前言 设计出人脸1 xff1a N xff0c 随着N的增大准确率降低最小的解决方案具有很强的现实意义 人脸1 xff1a N的框架大致分为 xff1a 人脸检测 人脸对齐 人脸映射与人脸识别LOSS的设计 xff0c 结构如下图
  • 商家招牌的分类与检测

    现实生活中的招牌各种各样 xff0c 千变万化 针对初赛 xff0c 在现实世界中 xff0c 选取100类常见的招牌信息 xff0c 如肯德基 麦当劳 耐克等 将最终的分类结果上传到比赛平台 数据典型图像 a 样本类别多样性 b 每类样本
  • TensorRT简介--高性能深度学习支持引擎

    上文简单提到了TensorRT的基础与onnx转换 xff1a 基于TensorRT的神经网络推理与加速 xff1a https blog csdn net intflojx article details 81712651 后面看到老板的
  • raspberry install mysql-connector-python

    wget http cdn mysql com Downloads Connector Python mysql connector python 1 0 11 zip unzip mysql connector python 1 0 11
  • ubuntu安装TensorFlow(支持不同版本)

    CUDA 43 CUDNN准备 xff1a 1 安装NVIDIA驱动 xff08 1 xff09 查询NVIDIA驱动 首先去官网 http www nvidia com Download index aspx lang 61 en us
  • 基于变换不变低秩纹理(TILT)的图像校正(附代码)

    原理简介 事实上 xff0c 对于未加旋转的图像 xff0c 由于图像的对称性与自相似性 xff0c 我们可以将其看作是一个带噪声的低秩矩阵 当图像由端正发生旋转时 xff0c 图像的对称性和规律性就会被破坏 xff0c 也就是说各行像素间
  • 最小可觉察误差(JND)与图像压缩

    1 JND算法背景 意义 1算法的概述 最小可觉察误差 JND Just Noticeable Distortion 用于表示人眼不能察觉的最大图像失真 xff0c 体现了人眼对图像改变的容忍度 在图像处理领域 xff0c JND 可以用来
  • 彩色图像压缩(颜色量化)

    调色板色度压缩 调色板的概述 大多数彩色图像采集设备及图像处理软件都采用 24 位真彩色图像数据结构记录图像信息 xff0c 即以红 xff08 R xff09 绿 xff08 G xff09 蓝 xff08 B xff09 彩色模式记录色
  • SSD论文解读

    1 论文简述 题目 SSD Single Shot MultiBox Detector 作者 Wei Liu Dragomir Anguelov Dumitru Erhan Christian Szegedy Scott Reed Chen
  • FaceNet项目实践

    一 论文的原理与复现 1 论文复现 Database xff1a LFW db xff08 论文采用 xff0c rgb图算是较大的典型数据集 xff09 LFW数据库 总共有 13233 张 JPEG 格式图片 xff0c 属于 5749
  • 深度学习领域最新的技术(CV、NLP)

    人工智能正在日益渗透到所有的技术领域 而深度学习 DL 是目前最活跃的分支 最近几年 xff0c DL取得了许多重要进展 其中一些因为事件跟大众关系密切而引人瞩目 xff0c 而有的虽然低调但意义重大 深度学习从业人员应该保持足够的嗅觉 x
  • Linux文件名称乱码GBK转UTF8重命名

    因Java项目运行于Linux之上 xff0c 系统字符集为en US UTF 8 xff08 可通过locale命令查看 xff09 xff0c 而项目Java启动参数设置字符集为GBK 通过上传功能上传的附件文件名称为GBK格式 xff
  • Linux系列讲解 —— 对装有Ubuntu18.04系统的硬盘进行数据迁移

    目录 0 背景介绍1 参照旧硬盘的分区对新硬盘进行分区2 将旧硬盘分区数据迁移到新硬盘对应分区中补充 xff1a 1 新硬盘启动有问题时的对策 需要启动U盘 0 背景介绍 现有一块装有ubuntu系统的旧硬盘 sda xff0c 电脑主机的
  • GPG错误:没有公钥无法验证签名的解决办法

    GPG错误 xff1a 没有公钥无法验证签名的解决办法 sudo apt key adv keyserver hkp keyserver ubuntu com 80 recv 后面加入密钥 xff0c 就能导入公钥了
  • linux中添加环境变量

    linux中添加环境变量 一般是在 etc profile中添加环境 xff0c 但是建议在 etc profile d 下创建一个以 sh结尾的文件 vim etc profil d my env sh 输入i进入编辑模式 eg xff1
  • snprintf函数用法及与sprintf比较

    int snprintf char restrict buf size t n const char restrict format 函数说明 最多从源串中拷贝n xff0d 1个字符到目标串中 xff0c 然后再在后面加一个0 所以如果目
  • gin跨域时Get,Post正常Put,Delete被阻止的问题解决

    问题表现 同一个项目请求同一个服务时 xff0c Get和Post请求正常 xff0c 但是Put和Delete一直报跨域错误的问题 Access to XMLHttpRequest at 39 http 127 0 0 1 8011 ap