【发布时间】:2011-05-23 07:37:45
【问题描述】:
我有一个登录脚本,它将用户名/密码作为 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) { ... }
})
【问题讨论】:
-
通常不使用 ajax 进行登录是有原因的。可能不安全。
-
感谢您的评论,但这真的无济于事......
-
这只是一个旁注。我不太确定为什么会这样。你能调试到dojo吗?你用的是什么dojo版本?
-
奇数。相同的代码在这里工作得很好。您的
settings().get('login_server')究竟返回了什么? -
settings().get('login_server') 返回
http://192.168.1.101:81。我正在使用 Dojo 1.6.1 - 昨天刚刚更新了工具包,以确保它不是旧版本中的错误。
标签: javascript json post dojo http-post