为什么HTTP请求导致OPTIONS而不是POST

时间:2019-09-20 21:45:00

标签: javascript html django rest post

我正在尝试从HTML页面向本地主机上运行的Django服务器发出JSON数据的POST请求。每当我按下按钮进行POST时,都会导致“ OPTIONS”而不是“ POST”

我尝试更改访问控制的标头,但无济于事。

这是我的javascript方法。

function doPost() {
      document.getElementById("confirmation").innerHTML = "Your order is being made.";

      var xhr = new XMLHttpRequest();
      var url = "http://127.0.0.1:8080/app/newitem/";
      xhr.open("POST", url, true);
      xhr.setRequestHeader("Content-Type", "application/json");
      xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
      xhr.setRequestHeader("Access-Control-Max-Age", "600")
      xhr.onreadystatechange = function () {
          if (xhr.readyState === 4 && xhr.status === 200) {
              var json = JSON.parse(xhr.responseText);
          }
      };
      var data = JSON.stringify({"name": "Sid", "email": "testemail@testabc.com", "price": "44.99"});
      xhr.send(data);
    }

调用此函数时,我希望Django服务器生成一条消息,指示发生“ POST”,而不是

[20/Sep/2019 21:36:45] "OPTIONS /app/newitem/ HTTP/1.1" 200 169

0 个答案:

没有答案