相反,它将我重定向到main.js的网址
function submitPOST(elementId, api, callback) {
let input = document.getElementById(elementId).getElementsByTagName("input");
let body = {};
for (let i = 0; i < input.length; i++) {
body[input[i].name] = input[i].value;
}
call('POST', api, body, callback);
}
function call(method, api,body, callback) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.onload = function () {
if (xmlHttp.status==200){
callback(xmlHttp.response);
}else{
console.log(xmlHttp.response);
}
};
xmlHttp.open(method, domainName+"/api/"+api, true); // true for asynchronous
xmlHttp.setRequestHeader("Content-Type", "application/json");
xmlHttp.send(JSON.stringify(body));
}
function login(input){
var response=JSON.parse(input);
document.cookie="atoken="+response['data'];
document.location.replace(domainName);
}
答案 0 :(得分:0)
当您在domainName变量中使用空字符串时,ajax调用将更正,但是替换不正确。 如果正确调用。例如:
submitPOST(id,api,登录)
尝试使用console.log(或其他调试工具)向您显示重定向URL。
在您的情况下,也许JSON.parse引发异常。将其放入try-catch块
function login(input){
try {
var response=JSON.parse(input);
document.cookie="atoken="+response['data'];
console.log('redirect to', domainName);
document.location.replace(domainName);
} catch(e) {
console.error('error in login process',e);
}
}