香草JavaScript XMLHttpRequest-如何正确设置标题(示例:Pastebin Api)

香草JavaScript XMLHttpRequest-如何正确设置标题(示例:Pastebin Api),javascript,html,api,xmlhttprequest,pastebin,Javascript,Html,Api,Xmlhttprequest,Pastebin,我只想向PasteBinAPI发送一个POST请求并发布一个粘贴。(香草JS) 我的问题是,发送请求时会出现此错误,即使我设置了如下标题:“被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标题。” 我从index.html获取输入,然后将其放入正文中。 (对于不熟悉pastebin api的人:) My index.html: <script src="hello.js"></script> <in

我只想向PasteBinAPI发送一个POST请求并发布一个粘贴。(香草JS) 我的问题是,发送请求时会出现此错误,即使我设置了如下标题:“被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标题。” 我从index.html获取输入,然后将其放入正文中。 (对于不熟悉pastebin api的人:)

My index.html:

<script src="hello.js"></script>
<input id="input" type="text" placeholder="Paste Text" />
<button onclick="hello()">Send</button>

检查http请求/响应中允许的标头他们的网站没有启用跨域请求,这实际上意味着他们不希望来自其他域的浏览器脚本直接使用他们的API(因为他们不希望XSS攻击针对他们的用户)。您需要一个代理服务器端脚本,该脚本将接受来自web页面的请求,然后将它们从服务器发送到pastebin(不存在跨域规则),然后将任何有用的结果路由回脚本。谢谢你的回答
function hello() {
  let request = new XMLHttpRequest();
  var input = document.getElementById("input");
  var body = {
    api_dev_key: "--insert your private dev key--",
    api_option: "paste",
    api_paste_code: input,
  };
  request.open("POST", "https://pastebin.com/api/api_post.php");
  request.setRequestHeader("Access-Control-Allow-Origin", "*");
  request.send(body);
  request.onload = () => {
    console.log(request);
    if (request.status === 200) {
      console.log(JSON.parse(request.response));
    } else {
      console.log(`error ${request.status} ${request.statusText}`);
    }
  };
}