1
이 코드는 TypeError를 던지고 있습니다. 아이디어는 원격 외부 서버에서 소금을 가져 와서 암호에 추가하고 해시를 생성하는 것입니다. 문제는 코드가Ajax 호출 "TypeError : 객체가 함수가 아닙니다."예외
TypeError: object is not a function
다음은 index_user_scripts.js의 일부라는 형식 오류를 던지고있다.
/*jshint browser:true */
/*global localStorage, console, $ */
(function(){
"use strict";
/*
* hook up event handlers
*/
function register_event_handlers(){
$(document).ready(function(){
try {
if(!window.openDatabase) {
console.log('Local Databases are not supported by your browser.');
} else {
var shortName = 'ChtrShk';
var version = '1.0';
var displayName = 'ChhatraSahayak';
var maxSize = 2*1024*1024;
var db = window.openDatabase(shortName, version, displayName, maxSize);
}
} catch(e) {
if (e == 2) {
// Version mismatch.
console.log("Invalid database version.");
} else {
console.log("Unknown error "+ e +".");
}
return;
}
if (localStorage.getItem("isLogged") === true){
$("#cs_now")[0].click();
}else{
localStorage.clearData;
console.log("We haven\'t logged-in yet. Let\'s login.");
console.log(window.location.pathname);
window.location = "index.html#login";
}
});
/* button #login */
$(document).on("click", "#signin", function(evt)
{
if ($("[name=lg_pass]")[0].value === "" || $("[name=lg_roll]")[0].value === ""){return false;}
console.log($("[name=lg_roll]")[0].value);
console.log($("[name=lg_pass]")[0].value);
var salt = '';
try{
$.ajax({
async: true,
crossDomain: true,
url:"http://borngeek.tk/cs/in.php",
type:"POST",
dataType:"jsonp",
timeout: 5000,
success: function(response){
salt = response._s;
console.log("Success: Fetched salt. " + salt);
},
error: function(data){
console.error("Error: Failed to fetch salt.");
}
});
}catch(e){console.error(e.name + ": " + e.message);}
console.log("checkpoint.");
var passStr = $("[name=lg_pass]")[0].value.concat(salt);
passStr = hex_sha512(passStr);
console.log(passStr);
try{
$.ajax({
async: true,
crossDomain: true,
url:"http://borngeek.tk/cs/in.php",
type:"POST",
data:{"roll":$("[name=lg_roll]")[0].value,
"pass":passStr,
"salt":$("[name=lg_salt]")[0].value
},
success: function(response){console.log("Login successful.");},
error: function(response){console.log("Bad login attempt.");}
});
}catch(e){console.error(e.name + ": " + e.message);}
console.log("Login Attempt.");
return false;
});
}
document.addEventListener("app.Ready", register_event_handlers, false);
})();
는 예외 ') 다음 블록 '/ * 버튼 #login */' '$ (문서) CSTE 연구진 ("#signin"을 "클릭"기능 (EVT 내부 AJAX 호출에서 발생되고 'window.openDatabase (...) '을 제거하려고했으나 어쨌든 작동하지 않는 것 같습니다 :( – borngeek
오,'hex_sha512'일까요? 정의되어있는 곳은? –
다른 js에 정의되어 있습니다. index.html에 포함 시켰습니다. 추가 된 스크립트는 다음과 같습니다 : cordova.js, js/app.js, js/init-app.js, xdk/init-dev 의 .js, lib 디렉토리/jquery.min.js,,app_framework/3.0/appframework.ui.min.js, lib 디렉토리/appframework.js, JS/sha512.min.js, JS/index_user_scripts.js, 갤러리아/갤러리아-1.3.6.min.js, galleria/galleria.classic.min.js, galleria/galleria-startup.js, /app_framework/3.0/appframework.ui.min.js를 지원합니다. – borngeek