2

ブラウザ内のクライアントからサードパーティにファイルをアップロードする必要があり、ヘッダーで API トークンを送信する必要があります。新旧のブラウザの一般的な解決策が必要です。

これはカールがどのように見えるかです

curl -v -H "X-LLNW-Authorization: $TOKEN" \
-F uploadFile=@/tmp/wobble.txt \
-F directory=/testpost \
-F basename=wobble-004.txt https://api.lama.lldns.net/post/file

ベース名は重要ではありません。

ここでJavaScriptができることは限られていると思います。サーバーにアクセスできません。

これはできますか?

ありがとう。

4

2 に答える 2

2

編集: カスタム ヘッダーがある場合、クロスドメイン リクエストは機能しません。カスタム ヘッダーがある場合、OPTIONS リクエストが自動的に送信され、サーバーは 200 OK で応答する必要があります。その後、実際の POST が送信されます。カスタム ヘッダーで認証する必要があるため、OPTIONS リクエストを受け入れるようにサーバー側を変更する必要があります。あなたは運が悪いと思います。

以下は、カスタム ヘッダーがなく、クロスドメイン リクエストが機能する場合のコードです。次のような HTML を使用します。

<form >
  <input type="file" name="file" id="fileToUpload" onchange="uploadFile()">
</form>

このコードを使用

function uploadFile() {
  var fd = new FormData();
  fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
  fd.append("directory","/testpost");
  fd.append("basename","wobble-004.txt");

  var oReq = new XMLHttpRequest();
  oReq.open("POST", "https://api.lama.lldns.net/post/file", true);
  oReq.onreadystatechange = alert(status);
  oReq.send(fd);
}

詳細については、この Mozilla ブログ投稿を参照してください。

于 2012-11-02T17:46:52.900 に答える