为啥在使用 XMLHttpRequest() 而不是表单时必须处理 Access-Control-Allow-Origin?
Posted
技术标签:
【中文标题】为啥在使用 XMLHttpRequest() 而不是表单时必须处理 Access-Control-Allow-Origin?【英文标题】:Why do I have to deal with Access-Control-Allow-Origin when using XMLHttpRequest() but not with forms?为什么在使用 XMLHttpRequest() 而不是表单时必须处理 Access-Control-Allow-Origin? 【发布时间】:2018-07-23 05:03:11 【问题描述】:我在使用 XMLHttpRequest() 发出请求并获得 Access-Control-Allow-Origin 错误时遇到问题,但是当我使用如下形式时,我看不到任何问题。表单是否允许访问,这种差异的原因是什么?
const f = document.createElement("form");
f.setAttribute("method", 'post');
f.setAttribute("action", '****');
const f = document.createElement("input");
f.setAttribute("type", "hidden");
f.setAttribute("name", 'id');
f.setAttribute("value", token);
document.appendChild(f);
$frm.submit(f);
【问题讨论】:
【参考方案1】:Access-Control-Allow-Origin
标头正在为 跨域 请求设置。
因此,当您通过XMLHttpRequest()
进行跨域 请求时,您必须允许请求来源。
表单执行同域请求,因此不需要Access-Control-Allow-Origin
标头。
【讨论】:
以上是关于为啥在使用 XMLHttpRequest() 而不是表单时必须处理 Access-Control-Allow-Origin?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在使用 XMLHttpRequest() 而不是表单时必须处理 Access-Control-Allow-Origin?
不使用本机 XMLHttpRequest 的原因 - 为啥 $.ajax 是强制性的?
为啥我不能使用 XMLHttpRequest 从本地网络获取 JSON 文件? [复制]
为啥我不能使用 XMLHttpRequest 从本地网络获取 JSON 文件? [复制]