【问题标题】:Access to XMLHttpRequest has been blocked by CORS policy - 401 (Unauthorized) [duplicate]CORS 策略已阻止对 XMLHttpRequest 的访问 - 401(未经授权)[重复]
【发布时间】:2019-09-16 11:32:33
【问题描述】:

我正在使用 ShipStation API 创建订单,但出现错误 Access to XMLHttpRequest has been blocked, 下面提供的代码是在https://www.shipstation.com/developer-api/#/reference/orders/createupdate-order/create/update-order?console=1 上生成的 所以我在https://tampermonkey.net/ 扩展上使用它,该函数在按钮单击错误截图时被调用

 (function () {
    'use strict';
    const $ = window.jQuery;
    $(document).ready(function () {

        const AUTHKEY = '112233'
        $("#send").on("click", sendRequest)


        const sendRequest = () => {
            var request = new XMLHttpRequest();

            request.open('POST', 'https://ssapi.shipstation.com/orders/createorder');

            request.setRequestHeader('Content-Type', 'application/json');
            request.setRequestHeader('Authorization', AUTHKEY);

            request.onreadystatechange = function () {
                if (this.readyState === 4) {
                    console.log('Status:', this.status);
                    console.log('Headers:', this.getAllResponseHeaders());
                    console.log('Body:', this.responseText);
                }
            };
            var body = { 'data is correct just deleted for now': '' };
            request.send(JSON.stringify(body));
        }
    });
})();

【问题讨论】:

  • 该端点是要在客户端(即通过浏览器 js)还是服务器端使用?一些 api 端点并不适用于客户端,因为某些详细信息需要与请求一起发送,例如在客户端使用时很容易看到的秘密 api 密钥。如果它用于客户端检查,则根据错误消息在请求中使用正确的 cors 模式
  • 嗨,是的,我在“授权”中提供 API 密钥和密钥,这就是我想知道如何在请求中提供正确的 cors 模式
  • 如果您需要使用密钥,请不要执行该客户端。这意味着您打算通过您使用的任何语言在服务器上使用该 api,例如 curl 和 php

标签: javascript jquery ajax post xmlhttprequest


【解决方案1】:

API 不是为在客户端使用而设计的。 调用您自己的后端并从那里发送。

发布你的 APIKEY 非常危险

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-05
    • 2023-01-23
    • 2020-05-30
    • 2019-09-23
    • 2019-12-18
    • 2022-08-14
    • 2021-10-11
    相关资源
    最近更新 更多