预检响应具有无效的 HTTP 状态代码 401 预检选项调用错误

Response for preflight has invalid HTTP status code 401 preflight OPTION call error

我正在使用 Ionic 3 框架项目,每当我尝试通过 POST 方法(如 postAsync)将数据发送到服务器时遇到一个错误,这与选项调用错误说:

Response for preflight has invalid HTTP status code 401

我不知道如何解决这个错误,因为我已经在我的浏览器中添加了 CORS 扩展,我仍然面临这个错误问题。

  1. 是否有任何解决方案可以从浏览器端解决此问题,例如 chrome devtools,因为我可以通过 -mode:OPTIONS 从网络中过滤它,但在控制台我有同样的错误。

  2. 如果这不可能,那么如何解决这个错误?

代码:

this.WooCommerce.postAsync('customers', customerData).then( (data) => {...}

更多错误信息:

polyfills.js:3 OPTIONS tusharstar.freesite.host/wc-api/v3/…... 401 (Unauthorized) (anonymous) @ polyfills.js:3 ... (index):1 Failed to load tusharstar.freesite.host/wc-api/v3/…) Response for preflight has invalid HTTP status code 401 bluebird.js:1545 Unhandled rejection TypeError: Failed to fetch

经过大量谷歌搜索后,我的意思是很多,我的第一点的答案是肯定的!这完全是关于网络安全 issue/precaution 的,它让开发人员可以通过 chrome 浏览器获得 error/precaution OPTION 调用点。解决此问题的简单方法(仅用于开发目的)是禁用浏览器的网络安全,重新启动 chrome 并使用新扩展名禁用的网络安全 .exe,一切都会正常进行。 windows 用户的步骤: 1.Closechrome。 2.Open 命令 3.add 此代码: C:/程序 File/Google/Chrome/Application>chrome.exe --disable-web-security --user-data-dir="D:\chrome"

你可以轻松度过难关!马上关注我

  1. 在桌面上创建快捷方式
  2. 右键单击快捷方式,然后单击“属性”
  3. 编辑目标属性

  1. 设置为"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --5。禁用网络安全 --user-data-dir="C:/ChromeDevSession"
  2. 在VIsual Studio代码中,运行ionic serve -l
  3. 您将看到打开的新标签页 http://localhost:8100/ionic-lab。你应该知道这个 link 是在正常的 chrome 选项卡中打开的,而不是我们设置的 "disable-web-security" chrome。
  4. 双击我们设置的快捷方式打开 "disable-web-security" chrome 选项卡。然后将 http://localhost:8100/ionic-lab 粘贴到此选项卡中。

因此,我们在使用 woo-commerce-api 时遇到多个错误的原因是 Google "web-security"。然后你只需禁用它,你实际上不需要任何 CORS 扩展。因此,如果您已安装,请立即删除它们。

我为学习本课程的人编写了这个解决方案 https://www.udemy.com/ionic-3-apps-for-woocommerce-build-an-ecommerce-mobile-app/。这是一个离子电子商务应用程序,使用 woo-commerce-api 从 Wordpress(本地或实时服务器)设置和获取数据。如果您在其他非离子语言上遇到问题,它仍然可以正常工作。

实际上,我在 Google 上进行了大量搜索以找到此解决方案。我希望这对你们所有人都有帮助。现在,我需要去睡觉了,因为明天我和我的讲师有关于这个离子项目的最终报告

再见! 曲乐

我遇到了同样的问题,我通过在我的 WordPress 根路径 (C:\xampp\htdocs\wordpress)

的 .htaccess 文件顶部添加几行代码解决了这个问题

将此代码添加到您的 .htaccess 文件的顶部:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $l [R=200,L]