gpt4 book ai didi

javascript - Dojo 的 xhrPost 和 Firefox

转载 作者:行者123 更新时间:2023-11-30 06:46:37 25 4
gpt4 key购买 nike

我有一个登录脚本,可以将用户名/密码作为 json 格式发送到服务器。它使用 POST,因此在客户端使用 xhrPost 完成。问题是,当我尝试使用 Firefox 登录时,浏览器不会发出 POST 请求,而是发出 OPTIONS 请求,实际上并没有发送任何参数。代码 POST 在 Chrome 和 Safari 中表现出色,因此 Firefox 肯定会有所作为。登录服务器在不同的 IP:port 上,所以它是跨域请求,我不知道这是否重要。

代码如下:

dojo.xhrPost({
url: settings().get('login_server'),
postData: dojo.toJson({username:user,password:pass}),
handleAs: 'json',
headers: { "Content-Type": "application/json", "Accept": "application/json"},
load: function(data,status) { ... },
error: function(error,status) { ... }
})

最佳答案

除非服务器支持 HTTP access control,否则您无法跨浏览器可靠地使用 XMLHttpRequest 进行跨域发布.这就是 Dojo 执行 OPTIONS 请求以检查 Access-Control-Allow-Origin header 的原因。

您可以使用 dojo.io.iframe 将 POST 发送到另一个域,但无法检查是否成功完成,除非登录端点返回特殊格式的页面(基本上在文本区域内包含 JSON)。

支持 XMLHttpRequest Level 2 的浏览器可以进行跨域请求。这就是为什么它适用于 Chrome/Safari 等。

关于javascript - Dojo 的 xhrPost 和 Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6094216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com