Javascript

Ardor API:由於 CORS 問題,無法對 Axios 使用 POST 請求

  • August 19, 2018

我對 Ardor API 的 POST 請求有疑問。這段程式碼:

<!DOCTYPE html>
<html>
<head>
 <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
 <script>
 function myFunction() {
     let nodeurl = "https://testardor.jelurida.com/nxt";
     const query = {
       recipient:'ARDOR-KZ3Y-4B97-6KF6-2V8WA',
       amountNQT:34,
       feeNQT:-1,
       deadline:15
     };
     axios.post(nodeurl, query)
     .then(function(response) {
       console.log(response.data);
       document.getElementById("demo").innerHTML = response.data;
     })
     .catch(function (error) {
       console.log(error.message);
     });
 }
 </script>
</head>

<body>

<h2>Preflight request to CORS enabled Ardor Node fails</h2>

<p id="demo">The result should appear here</p>
<button type="button" onclick="myFunction()">Try it</button>
</body>
</html>

在預檢期間失敗。鉻合金:

無法載入<http://localhost:26876/nxt>:對預檢請求的響應未通過訪問控制檢查:請求的資源上不存在“Access-Control-Allow-Origin”標頭。因此,不允許訪問源“ http://127.0.0.1:3000 ”。響應具有 HTTP 狀態程式碼 403。

我的理解是,需要發送“Access-Control-Allow-Origin”標頭的不是我,而是 Ardor/NXT 節點。

可能只是我沒有得到它。有一些選項,您可以更改內容類型,NXT API 可以嗎?這是任何人必須做的事情嗎?

它只是失敗了 POST,GET 工作正常。

感謝您提供正確方向的任何指示。

2.1.0e 之前的 Ardor 版本拒絕了 OPTIONS Http 方法。此方法現已啟用,因此問題應該得到解決。

似乎 Axios 使用 OPTIONS Http 請求來檢查是否啟用了 CORS,並且由於它被禁止,因此響應是 403 響應。

引用自:https://bitcoin.stackexchange.com/questions/78389