Hubspot表单提交返回415 Unsupported Media Type错误排查求助
HubSpot表单提交返回415 Unsupported Media Type错误排查
在WordPress网站中嵌入了一个简单的HTML注册表单,用于提交数据至HubSpot。表单渲染正常,但提交时始终返回415“Unsupported Media Type”错误。
表单HTML代码(已移除id和class属性)
<form method="POST" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8" novalidate="" action="https://forms.hsforms.com/submissions/v3/public/submit/formsnext/multipart/49109990/6f68eafc-7fb5-46c6-ade6-96a3967e2662"> <input required="" placeholder="your@email.com" type="email" name="email" inputmode="email" autocomplete="email"> <input required="" placeholder="First Name" type="text" name="firstname" inputmode="text" autocomplete="given-name"> <input required="" placeholder="Last Name" type="text" name="lastname" inputmode="text" autocomplete="family-name"> <button data-slot="button" type="submit" value="Submit">Subscribe</button> </form>
请求头信息
POST /submissions/v3/public/submit/formsnext/multipart/49109990/6f68eafc-7fb5-46c6-ade6-96a3967e2662 HTTP/3 Host: forms.hsforms.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br, zstd Referer: https://integrate-ed.org/ Content-Type: application/x-www-form-urlencoded Content-Length: 62 Origin: https://integrate-ed.org DNT: 1 Connection: keep-alive Cookie: _cfuvid=j2i2MKFliRHQZNCjR2ulXTUv7VMaTb7yvk3oJUEp_T4-1744995552742-0.0.1.1-604800000; __cf_bm=GrlGyMDPZTtk1bubUCfnxfuDbgEMV1inx5d.y18S4tk-1745001493-1.0.1.1-hqL0bqpkQlz0tXocL5TTSg1zAcCjOja0eOkTKV2vM8kE_QhTlC0_BJe.b9NmaJme01hSDU39dOUP7ZhSS_.Ih8Hvw5sOuB2S49DnSNHNYWU Upgrade-Insecure-Requests: 1 Sec-Fetch-Dest: iframe Sec-Fetch-Mode: navigate Sec-Fetch-Site: cross-site Sec-Fetch-User: ?1 Priority: u=6
请求负载
email=test_german%40nowhere.com&firstname=Test&lastname=German
已尝试的解决方案
- 确保Content-Type设置为"application/x-www-form-urlencoded"(之前未设置)
- 尝试将charset设置为"utf-8"、"utf8"和"iso-8859-1"
- 尝试将Accept设置为"application/x-www-form-urlencoded"、"text/plain"、"utf-8"、"utf8"、"text/html;charset=iso-8859-1"和"/"
响应头信息
POST https://forms.hsforms.com/submissions/v3/public/submit/formsnext/multipart/49109990/6f68eafc-7fb5-46c6-ade6-96a3967e2662 [HTTP/3 415 164ms] POST https://forms.hsforms.com/submissions/v3/public/submit/formsnext/multipart/49109990/6f68eafc-7fb5-46c6-ade6-96a3967e2662 Status 415 VersionHTTP/3 Transferred1.23 kB (237 B size) Referrer Policystrict-origin-when-cross-origin DNS ResolutionDNS over HTTPS Blocking Enhanced Tracking Protection This URL matches a known tracker and it would be blocked with Content Blocking enabled. HTTP/3 415 date: Fri, 18 Apr 2025 18:45:02 GMT content-type: text/html;charset=iso-8859-1 cache-control: max-age=0, no-cache, no-store access-control-allow-origin: https://integrate-ed.org access-control-allow-methods: OPTIONS, POST access-control-allow-headers: * access-control-allow-credentials: false vary: origin x-content-type-options: nosniff x-envoy-upstream-service-time: 2 x-evy-trace-route-service-name: envoyset-translator x-evy-trace-virtual-host: all x-hubspot-correlation-id: d5fa1e17-d5a8-406e-802f-abcbcef0ec12 x-evy-trace-served-by-pod: iad02/star-hubspot-td/envoy-proxy-5c76648889-lj6zk x-evy-trace-listener: listener_https x-evy-trace-route-configuration: listener_https/all x-request-id: d5fa1e17-d5a8-406e-802f-abcbcef0ec12 cf-cache-status: DYNAMIC priority: u=6,i=?0 strict-transport-security: max-age=31536000; includeSubDomains; preload server: cloudflare cf-ray: 9326511f585f6204-ORD alt-svc: h3=":443"; ma=86400 server-timing: cfExtPri Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate, br, zstd Accept-Language en-US,en;q=0.5 Connection keep-alive Content-Length 62 Content-Type application/x-www-form-urlencoded Cookie _cfuvid=j2i2MKFliRHQZNCjR2ulXTUv7VMaTb7yvk3oJUEp_T4-1744995552742-0.0.1.1-604800000; __cf_bm=GrlGyMDPZTtk1bubUCfnxfuDbgEMV1inx5d.y18S4tk-1745001493-1.0.1.1-hqL0bqpkQlz0tXocL5TTSg1zAcCjOja0eOkTKV2vM8kE_QhTlC0_BJe.b9NmaJme01hSDU39dOUP7ZhSS_.Ih8Hvw5sOuB2S49DnSNHNYWU DNT 1 Host forms.hsforms.com Origin https://integrate-ed.org Priority u=6 Referer https://integrate-ed.org/ Sec-Fetch-Dest iframe Sec-Fetch-Mode navigate Sec-Fetch-Site cross-site Sec-Fetch-User ?1 Upgrade-Insecure-Requests 1 User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0
核心问题分析
你的表单提交URL包含multipart路径段,这表示HubSpot期望接收**multipart/form-data格式**的请求,但你的表单设置的enctype是application/x-www-form-urlencoded,两者格式不匹配,直接触发415错误。
解决方案
有两种修复方式,任选其一即可:
- 修改表单的enctype:将表单的
enctype改为multipart/form-data,匹配HubSpot的multipart端点要求:
<form method="POST" enctype="multipart/form-data" accept-charset="UTF-8" novalidate="" action="https://forms.hsforms.com/submissions/v3/public/submit/formsnext/multipart/49109990/6f68eafc-7fb5-46c6-ade6-96a3967e2662"> <input required="" placeholder="your@email.com" type="email" name="email" inputmode="email" autocomplete="email"> <input required="" placeholder="First Name" type="text" name="firstname" inputmode="text" autocomplete="given-name"> <input required="" placeholder="Last Name" type="text" name="lastname" inputmode="text" autocomplete="family-name"> <button data-slot="button" type="submit" value="Submit">Subscribe</button> </form>
- 更换为非multipart端点:由于你的表单没有文件上传需求,直接移除URL中的
multipart路径段,使用标准表单提交端点,保持application/x-www-form-urlencoded的enctype即可:
<form method="POST" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8" novalidate="" action="https://forms.hsforms.com/submissions/v3/public/submit/formsnext/49109990/6f68eafc-7fb5-46c6-ade6-96a3967e2662"> <input required="" placeholder="your@email.com" type="email" name="email" inputmode="email" autocomplete="email"> <input required="" placeholder="First Name" type="text" name="firstname" inputmode="text" autocomplete="given-name"> <input required="" placeholder="Last Name" type="text" name="lastname" inputmode="text" autocomplete="family-name"> <button data-slot="button" type="submit" value="Submit">Subscribe</button> </form>
补充说明
HubSpot的v3表单提交接口分为两类:
/multipart/路径:专为带文件上传的表单设计,强制要求请求格式为multipart/form-data- 标准路径:处理普通键值对表单数据,支持
application/x-www-form-urlencoded或application/json格式
你的请求仅包含普通文本字段,无需使用multipart端点,第二种方案更贴合需求。
内容的提问来源于stack exchange,提问作者Jennifer G.
相关产品推荐
相关产品推荐

