Javascript Ajax不读取JSON servlet应答
我在用ajax和javascript做噩梦。。。我正在尝试读取JSON答案并重定向到其他站点 我的Javascript应该查询等待过程==login | | loginAlreadyInUse的验证servlet,然后将其重定向到其他位置:Javascript Ajax不读取JSON servlet应答,javascript,jquery,servlets,Javascript,Jquery,Servlets,我在用ajax和javascript做噩梦。。。我正在尝试读取JSON答案并重定向到其他站点 我的Javascript应该查询等待过程==login | | loginAlreadyInUse的验证servlet,然后将其重定向到其他位置: <script type="text/javascript"> var userId = "<%=request.getSession().getId()%>"; var timeInterval=self.setInterval("
<script type="text/javascript">
var userId = "<%=request.getSession().getId()%>";
var timeInterval=self.setInterval("check_userId()", 3000);
function check_userId() {
$.post('http://localhost:8080/qrlogin/verify', {userId: userId},
function(data) {
if(data.procedure == "login") {
window.location = 'http://localhost:8080/qrlogin/login'+userId;
}
else if(data.procedure == 'loginAlreadyInUse') {
window.location = 'http://localhost:8080/qrlogin/'+userId;
}
}, "json");
问题是脚本从未重定向到登录页面。(继续每3秒发布一次帖子…)
谢谢你抽出时间
“{'procedure':'login'}”
。非单引号中的所有键和字符串。因此,您需要out.print()
this:“{\”过程\“:\”登录\“}”
setInterval
(或者setTimeout
)。它是伪装的eval
,我们都知道它是邪恶的(对吧?对吧?)。只需传递函数本身:
var timeInterval=self.setInterval(check_userId, 3000); // look ma, no quotes
“{'procedure':'login'}”
。非单引号中的所有键和字符串。因此,您需要out.print()
this:“{\”过程\“:\”登录\“}”
setInterval
(或者setTimeout
)。它是伪装的eval
,我们都知道它是邪恶的(对吧?对吧?)。只需传递函数本身:
var timeInterval=self.setInterval(check_userId, 3000); // look ma, no quotes
好吧,你是我的英雄。。。错误在引号中。。。非常感谢你!对不起,打扰你了。。。但是,创建JSON对象的正确方法是什么?硬编码字符串被证明是有问题的…您可以使用类似于googlegson()的库gson是好的;我个人喜欢。好吧,你是我的英雄。。。错误在引号中。。。非常感谢你!对不起,打扰你了。。。但是,创建JSON对象的正确方法是什么?硬编码字符串被证明是有问题的…您可以使用类似于googlegson()的库gson是好的;我个人喜欢。