首頁 >web前端 >js教程 >如何將資料傳遞到 Axios 中的服務並確保設定正確的內容類型和邊界?

如何將資料傳遞到 Axios 中的服務並確保設定正確的內容類型和邊界?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 23:09:30250瀏覽

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

將資料傳遞到Axios 中的服務

問題:您想要將「_boundary」附加到Ax API 調用,但在Axios 服務中無法存取資料。

解決方案: Axios 自動處理某些請求正文格式的內容類型,包括 FormData。傳遞 FormData 實例作為 data 參數將設定適當的 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 :

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:JS 和基礎知識下一篇:JS 和基礎知識