没有push.js的Ajax请求

时间:2014-06-05 09:04:23

标签: ajax ratchet-2 push.js

我正在使用Ratchet 2来构建应用。我正在尝试进行一个简单的ajax调用,并得到像这样的响应

function tryLogin() {
var hxr;

if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
} else {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

xhr.open("POST", "absolutePathToMyScript");
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        var obj = JSON.parse(xhr.responseText);
        console.log(obj);
        //spinner.classList.remove("active");
    }
}

var data = {
    login: document.querySelector('#loginForm input[name="login"]').value,
    pwd: document.querySelector('#loginForm input[name="pwd"]').value
};

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("login=" + data.login + "&pwd=" + data.pwd);

}

当我点击触发tryLogin()的按钮时,ajax调用执行得很好,但重新加载页面。 我假设它来自push.js

是否有任何解决方案可以忽略ajax调用中的push.js?

2 个答案:

答案 0 :(得分:0)

您是否尝试过放入数据-ignore =" PUSH"触发javascript事件的按钮属性?似乎应该可以工作,您也可以查看PUSH.js,只是为您的请求切换选项。您可以从Window.Ratchet.push获取PUSH对象。

http://goratchet.com/components/#push

答案 1 :(得分:0)

Ratchet.js将您的网站变成单页应用程序。我认为您在表单字段中输入了输入,当单击该按钮时会导致发布,这会导致意外的页面导航。如果是这种情况,解决方案是在onclick事件处理程序中返回false

button onclick="tryLogin();return false;">Try Login</button>

example