我正在使用 fetch 使用 API,但收到 CORS 错误。我尝试了多个标题,但我不明白问题是什么。
我不是 API 的所有者,所以我无法更改它,但会检查它返回的响应access-control-allow-origin
。
以下是我的请求方法:
export const execPOST = (url, body) => {
return fetch(url, {
method: "POST",
headers: {
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json"
},
body: JSON.stringify(body)
});
};
Run Code Online (Sandbox Code Playgroud)
响应是:
Request URL: http://api
Request Method: OPTIONS
Status Code: 405 Method Not Allowed
Remote Address: ip
Referrer Policy: no-referrer-when-downgrade
Response Headers:
Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)
上面的回复还不足以满足我的请求吗?
控制台错误:
选项net::ERR_ABORTED 405(不允许方法)从源
http://api
获取的访问已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态。'http://api'
'http://localhost:3000'
我使用它来工作(同时开发)"https://cors-anywhere.herokuapp.com/"
,但我不认为我应该将它用于生产环境。
我找到了很多关于这个问题的材料,但是除了实现后端来发出请求或使用其他东西作为代理来发出请求等等之外,没有任何其他有效的方法......
我正在使用<p:dialog>
. 在其中提交表单后,我使用dialog.hide()
并触发 ajax close 事件侦听器方法,该方法将更新List<E>
. 它工作正常,但是当我放置一些必需的输入组件并在<p:dialog>
出现验证错误时再次调用时,它不再触发该方法。
对话框:
<p:outputPanel autoUpdate="true">
<p:dialog id="dialogComentario" header="Deixe sua avaliação" widgetVar="confirmation"
showEffect="fade" hideEffect="fade" height="340" width="500" modal="true"
visible="#{not empty facesContext.maximumSeverity}"
resizable="false" closable="true" draggable="false">
<h:form prependId="false">
...
<p:commandLink styleClass="btn btn-primary btenviacoment"
oncomplete="if (!args.validationFailed) confirmation.hide();"
actionListener="#{comentario.actEnviarComentario}" global="false">
<i class=" icon-play-circle icon-white"></i>
<h:outputText value=" Enviar Comentário" />
<f:param name="codigoplu" value="#{produto.produto.codigoplu}" />
</p:commandLink>
...
<p:commandLink styleClass="btn" onclick="confirmation.hide();"
global="false" immediate="true">
<h:outputText value=" Cancelar" />
<i class="icon-off"></i>
</p:commandLink>
...
</h:form>
<p:ajax event="close" update=":avaliacoesClientes, :dialogComment"
listener="#{produto.atualizarComentarios}" …
Run Code Online (Sandbox Code Playgroud) ajax ×1
cors ×1
dialog ×1
fetch-api ×1
javascript ×1
jsf ×1
primefaces ×1
reactjs ×1
validation ×1