Ajax 使用Bigcommerce向API发出HTTP请求时遇到问题

Ajax 使用Bigcommerce向API发出HTTP请求时遇到问题,ajax,http,cross-domain,basic-authentication,bigcommerce,Ajax,Http,Cross Domain,Basic Authentication,Bigcommerce,所以我正在Bigcommerce上为一个客户建立一个网站。因为Bigcommerce不允许在他们的系统上上传PHP文件,所以我在HTML文件的脚本标记中使用AJAX。我正在使用的API的文档说明在用户名字段中使用我的API密钥进行HTTP基本身份验证,并且所有请求都必须通过HTTPS传输 首先,这是我的代码 $.ajax({ type: 'POST', url : "https://www.freightview.com/api/v1.0/rates",

所以我正在Bigcommerce上为一个客户建立一个网站。因为Bigcommerce不允许在他们的系统上上传PHP文件,所以我在HTML文件的脚本标记中使用AJAX。我正在使用的API的文档说明在用户名字段中使用我的API密钥进行HTTP基本身份验证,并且所有请求都必须通过HTTPS传输

首先,这是我的代码

$.ajax({
        type: 'POST',
        url : "https://www.freightview.com/api/v1.0/rates",
        data : ({ myRequest }),
        dataType : "jsonp",
        Accept: 'application/json',
        beforeSend : function(xhr) {
        xhr.setRequestHeader("Authorization", "Basic " +           "MyKey:");
        }
})
我试过了
Username:'mykey'
还有其他各种各样的方法把钥匙放进去,但要不断地
401未授权

我四处寻找了一些方法,并指出了一些可能的问题:

  • 本页提到AJAX不能进行跨域HTTPS请求。这是否意味着我必须找到另一种方式提出请求?如果是这样的话,我怎样才能提出这样一个有限制的要求呢
  • 是否只是因为我没有正确定义用于身份验证的用户名?我希望这是唯一的问题,但是我在这个网站上看到了很多关于AJAX中基本Auth的问题
  • 问这个问题的用户似乎和我有一个类似的问题,但答案是多种多样的,我不确定他们是否适合我的情况,甚至不知道如何开始实施。我需要CORS吗?我甚至可以让CORS在Bigcommerce上工作吗
正如你们所看到的,我认为是一个相对简单的代码片段,结果比我想象的要复杂得多,我真的可以使用一些StackOverflow魔法


编辑:语法和拼写在BigCommerce中,您必须使用Base64对凭证进行编码

例如:

// Define the string
var string = 'Hello World!';

// Encode the String
var encodedString = btoa(string);
console.log(encodedString); // Outputs: "SGVsbG8gV29ybGQh"

// Decode the String
var decodedString = atob(encodedString);
console.log(decodedString); // Outputs: "Hello World!"

控制台是否提到CORS警告?我觉得如果你收到401的回复,那么你的请求就会通过。我使用代理ajax获取Bigcommerce请求来绕过CORS。