带有预检请求的 CORS 帖子

2024-03-29

我正在尝试使用 CORS 将文件上传到不同域上的服务,但由于来源被拒绝,它们一直失败。据我所知,正在使用正确的标头来允许此操作。

JavaScript 请求:

  var xhr = new XMLHttpRequest();
  xhr.open('POST', "https://files.example.com", true);                                                                                                                            
  xhr.setRequestHeader('Content-Type', 'application/json');
  xhr.onreadystatechange = function () {
    if (this.status == 200 && this.readyState == 4) {
      console.log('response: ' + this.responseText);
    }
  };

  xhr.send();

来自预检 OPTIONS 请求的响应:

Access-Control-Allow-Headers:Origin, Authorization, Content-Type
Access-Control-Allow-Methods:POST, OPTIONS
Access-Control-Allow-Origin:*
Content-Length:0
Content-Type:application/json
Date:Mon, 19 Nov 2012 23:30:21 GMT

POST 请求的标头:

Cache-Control:no-cache
Content-Type:application/json
Origin:https://www.example.com
Pragma:no-cache
Referer:https://www.example.com
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.19 (KHTML, like     Gecko) Chrome/25.0.1325.0 Safari/537.19

这会导致错误:

XMLHttpRequest cannot load https://files.example.com. Origin https://www.example.com is not allowed by Access-Control-Allow-Origin.

不幸的是,发布到页面以外的域会引发 CORS。这还包括不同的子域、端口和协议 (http/https)。

当请求“不简单”时,即完成预检,即内容类型标头设置为“text/plain”以外的内容。你的“application/json”会让浏览器害怕预检。

如果这 50-200 毫秒对您很重要,那么您可以重写您的 Web 服务以理解“简单”内容类型。如果不是,那么您应该让您的 Web 服务在执行 OPTIONS(http 方法)任务时返回 HTTP 状态 204(无内容)。

处理wcf时:

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

带有预检请求的 CORS 帖子 的相关文章

随机推荐

  • 如何将 Metro UI 控件添加到 Visual Studio 中的工具箱?

    地铁控制 https github com viperneo winforms modernui https github com viperneo winforms modernui 我正在尝试使用地铁控件 并且我将从示例项目中尽我所能
  • 如何使用 iMagick 将一个图像叠加在另一个图像之上

    概述 我得到了两张图片 背景图像分辨率为 1920x1080p 叠加图像可以为任何小于 1920x1080p 的分辨率 背景图片 1920x1080 叠加图像 任何小于 结果图像 1920x1080 我试图将覆盖图像精确地覆盖在背景图像的中
  • 推荐的 Twig 文件扩展名

    Twig 模板有推荐的文件扩展名吗 我已经看到了以下使用情况 并希望与大多数其他开发人员保持一致 myTemplate html twig myTemplate twig myTemplate html myTemplate tmpl 通常
  • 如何使用jquery为第一个列表项应用活动类

    div class accordion ul class navigation li Lorem li li Ipsum li li Donor li ul ul class navigation li Test li li Demo li
  • 未找到“google-api-python-client”发行版,并且 pyinstaller 的应用程序需要该发行版

    我目前正在尝试使用 pyinstaller 构建一个应用程序 我收到了错误The google api python client distribution was not found and is required by the appl
  • 为什么我的 git 无法通过 gitolite 使用 git-daemon 推送到我的服务器

    当我使用 gitolite 时 忽略git daemon 我可以这样做git clone git xxx xxx 但是当我推送项目时 它显示了错误 Total 2 delta 0 reused 0 delta 0 remote Empty
  • 在python中将进度值发送到进度条

    在我的游戏中我有两个模块 岛 py它将岛屿加载到我的游戏中 第二个模块是gui py它在游戏开始之前处理 GUI 小部件 我的问题是如何将 island py 模块中的进度值发送到中创建的进度栏gui py module 编辑 还可以使用加
  • Google Appengine 游标

    我正在使用两者ndb and search api我的 python appengine 项目中的查询 我能找到的关于游标的唯一官方文档 https cloud google com appengine docs python datast
  • Java:CopyOnWriteArrayList 与 SynchronizedList

    有什么区别CopyOnWritearraylist and Collections synchronizedList 什么时候应该优先选择其中一个 CopyOnWriteArrayList当读取次数远远超过写入次数时 应使用列表 这是因为您
  • 特殊字符问题

    如何更改 Android 上的字体以允许显示 或 等特殊字符 实际上包含这些字符的字符串存储在sqlite数据库中 当您将文本加载到您的TextView 这对你有用吗 textView setText new String textFrom
  • 在字符串 Objective-c 中连接字符串

    我想将一个字符串放在一个字符串中 基本上是伪代码 first part of string varying string third part of string 我怎样才能在 Objective C 中做到这一点 有没有办法在 obj c
  • Erlang:如何从体内引用匿名函数?

    In Erlang http en wikipedia org wiki Erlang programming language 有没有办法引用当前正在执行的函数 这对于产生无限循环很有用 spawn fun gt do something
  • Azure 搜索和破折号

    我正在使用 Azure 搜索并尝试对文档执行搜索 看起来好像是这样做的 indexes blah docs api version 2015 02 28 search abc 1003 返回与此相同的结果 indexes blah docs
  • 在 OpenSceneGraph 中创建球体(使用 osg::Geometry)

    我花了相当长的时间才使其正常工作 但我的球体无法显示 使用以下代码来实现我的功能 使用 Visual C 在 Opengl 中创建 3D 球体 https stackoverflow com questions 5988686 creati
  • 禁用 jQuery 移动按钮

    我正在尝试禁用此按钮 a Next a 单击事件不应触发 并且按钮 UI 还应反映按钮禁用状态 我尝试过以下方法 next attr disabled true next attr disabled disabled next button
  • 如何处理管道中的$null

    我的 PowerShell 代码中经常遇到以下情况 我有一个返回对象集合的函数或属性 或者 null 如果将结果推入管道 则还可以处理管道中的元素 如果 null是唯一的元素 例子 Project Features Foreach Obje
  • Python Xpath:lxml.etree.XPathEvalError:谓词无效

    我正在尝试学习如何抓取网页 在教程中我使用下面的代码抛出此错误 lxml etree XPathEvalError Invalid predicate 我正在查询的网站是 不要评判我 它是训练视频中使用的网站 https itunes ap
  • Visual Studio 2015 的 Git 问题

    我在使用 TortoiseGit 版本 1 8 16 0 git 版本 2 6 2 windows 1 创建的 git 存储库中有一个 Visual Studio 解决方案 我刚刚将 Visual Studio 从 2015 年更新到 20
  • 将解密的文件读入 ZipInputStream 有时会截断第一个文件

    我正在开发一个电子阅读器应用程序 使用skyepub https skyepub net 基本上将加密的书籍下载到文件系统中 并将解密密钥保存在数据库中 当用户尝试阅读它时 它将书籍加载到内存中并解密 问题是有些书的第一章被截断了 epub
  • 带有预检请求的 CORS 帖子

    我正在尝试使用 CORS 将文件上传到不同域上的服务 但由于来源被拒绝 它们一直失败 据我所知 正在使用正确的标头来允许此操作 JavaScript 请求 var xhr new XMLHttpRequest xhr open POST h