ホームページ  >  記事  >  ウェブフロントエンド  >  Axios のサービスにデータを渡し、正しいコンテンツ タイプと境界が設定されていることを確認するにはどうすればよいですか?

Axios のサービスにデータを渡し、正しいコンテンツ タイプと境界が設定されていることを確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 23:09:30201ブラウズ

How can I pass data to a service in Axios and ensure the correct content type and boundary are set?

Axios のサービスにデータを渡す

問題: のヘッダーに「_boundary」を付加したいと考えています。 Axios API 呼び出しですが、Axios サービスでデータにアクセスできません。

解決策: Axios は、FormData などの特定のリクエスト本文形式のコンテンツ タイプを自動的に処理します。 FormData インスタンスをデータ引数として渡すと、手動構成なしで適切な Content-Type と MIME 境界が設定されます。

詳細な説明:

自動コンテンツ タイプ処理:

FormData インスタンスを送信するとき、ランタイムは自動的に Content-Type を「multipart/form-data」に設定し、正しい MIME 境界トークンを含めます。この動作により、データが正しくシリアル化されてサーバーに送信されることが保証されます。

例:

Axios で FormData インスタンスを送信する例を次に示します:

<code class="javascript">const form = new FormData();

// Attach files and other fields to the formData instance
form.append('file', fileInput.files[0]);
form.append('foo', 'foo');

axios.post(url, form);</code>

カスタム コンテンツ タイプの処理:

文字列データを特定の形式 (例: text/xml、 application/json).

例:

<code class="javascript">const data = JSON.stringify({ foo: 'foo', bar: 'bar' });

axios.post(url, data, {
  headers: { 'content-type': 'application/json' },
});</code>

Axios v0.27.1 および v1.0.0 の回避:

これらの Axios バージョンには、FormData の処理に関する既知の問題があります。 Fetch API、got (Node.js の場合)、ky (ブラウザーの場合) などの代替手段を使用することをお勧めします。

Node.js の考慮事項:

Node.js バックエンドで Axios を使用すると、FormData インスタンスから Content-Type ヘッダーが推論されません。これに対処するには、リクエスト インターセプターを使用するか、ヘッダーを手動でマージします。

jQuery $.ajax() メソッド:

デフォルトでは、$.ajax()ペイロードを「application/x-www-form-urlencoded」として送信し、jQuery.param() を使用して JavaScript データをシリアル化します。ブラウザが Content-Type を自動的に設定できるようにするには、次のオプションを使用します:

<code class="javascript">$.ajax({
  url,
  method: 'POST',
  data: body,
  contentType: false, // Let the browser figure out the content type
  processData: false, // Don't attempt to serialize data
});</code>

以上がAxios のサービスにデータを渡し、正しいコンテンツ タイプと境界が設定されていることを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:JS と基本次の記事:JS と基本