J
Jeff
I get an access denied on this one website that many people use (but
on one only on one computer - dozens of others work fine). I have
made sure they all have same IE and java, and I get error in Firefox
also. Any hit appreciated on where to look for a rights problem on
access denied error. What is weird, is if the user clicks refresh, it
works!
Here is the line with the issue, and below is more of the code:
if (self.API != null && self.tracking.document.pwsTracking != null) {
self.content.location.href = contentUrl;
}else if(self.tracking.document.appletpea!= null)
{ //question appletpea
And below is bigger picture.
//modify the line below if you have changed the servlet alias in the
proxlet.war's web.xml.
var PROXLET_SERVLET_ALIAS = "CrossDomainProxlet";
// general global parameters
var URL = "CONTENT_URL";
var STUD_CPNT_ID = "STUD_CPNT_ID";
var MODULE_ID = "MODULE_ID";
var MODULE_NAME = "MODULE_NAME";
var EXAM_ID = "EXAM_NAME";
var ITERATION = "ITERATION";
var EXAM_TYPE = "EXAM_TYPE";
var SURVEY = "SURVEY";
var FINISHED = "FINISHED";
var QUESTION_NO = "QUESTION_NO";
var SERVER_URI ="SERVER_URI"
var PROXLET_URI = "PROXLET_URI"
var PARAMS = "PARAMS"
var SCORM_RETURN="SCORMRETURN"
var TRACKING_RETURN="TRACKINGRETURN"
var debugMode = true;
// convert location.search into an array of values indexed by name
function getSearchAsNameArray() {
var minNav3 = (navigator.appName == "Netscape" &&
parseInt(navigator.appVersion) >= 3);
var minIE4 = (navigator.appName.indexOf("Microsoft") >= 0 &&
parseInt(navigator.appVersion) >= 4);
var minDOM = minNav3 || minIE4; // baseline DOM required for this
function
var results = new Array();
if (minDOM) {
var input = location.search.substr(1);
var tempresults = new Array();
if (input) {
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
tempresults[tempArray[0]] = decodeURIComponent(tempArray[1]);
}
input = tempresults[PARAMS];
tempArray = new Array();
if (input) {
input = decodeURIComponent(input);
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
results[tempArray[0]] = decodeURIComponent(tempArray[1]);
}
}else {
results = tempresults;
}
}
}
return results;
}
function getParamsByName() {
var minNav3 = (navigator.appName == "Netscape" &&
parseInt(navigator.appVersion) >= 3);
var minIE4 = (navigator.appName.indexOf("Microsoft") >= 0 &&
parseInt(navigator.appVersion) >= 4);
var minDOM = minNav3 || minIE4; // baseline DOM required for this
function
var results = new Array();
if (minDOM) {
var input = unescape(location.search.substr(1));
if (input) {
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
results[tempArray[0]] = tempArray[1];
}
}
}
return results;
}
// convert location.search into an array of names and values
function getSearchAsIndexArray() {
var minNav3 = (navigator.appName == "Netscape" &&
parseInt(navigator.appVersion) >= 3);
var minIE4 = (navigator.appName.indexOf("Microsoft") >= 0 &&
parseInt(navigator.appVersion) >= 4);
var minDOM = minNav3 || minIE4; // baseline DOM required for this
function
var results = new Array();
if (minDOM) {
var input = location.search.substr(1);
if (input) {
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
results[i*2] = tempArray[0]
results[(i*2)+1] = decodeURIComponent(tempArray[1]);
}
}
}
return results;
}
// initialise the content and tracking frames for a wrapper frameset
var contentUrl;
function initWrapper(trackingUrl) {
if (location.search) {
//var params = getSearchAsNameArray();
var searchArray = getSearchAsIndexArray();
var delim = "";
var searchStr = ""
// load the content into one frame and remove the content URL from
parameters passed to the tracking frame
for (var i = 0; i < searchArray.length {
if (searchArray == URL) { // load content
contentUrl = searchArray[i+1];
//contentUrl = params;
} else if(searchArray == PARAMS){
//do nothing with PARAMS
}else {
searchStr += (delim + searchArray + "=" +
encodeURIComponent(searchArray[i+1]));
delim = "&";
}
i++; i++;
}
// load the frames
trackingUrl = trackingUrl.indexOf("?") >= 0 ? trackingUrl + "&" +
searchStr : trackingUrl + "?" + searchStr;
self.tracking.location.href = trackingUrl;
//
self.tracking.document.pwsTracking.setContentURL(contentUrl); //for
bookmark
contentUrl = contentUrl.indexOf("?") >= 0 ? contentUrl + "&" +
searchStr : contentUrl + "?" + searchStr;
initContent();
}
}
// initialize content window after the tracking applets have been
loaded
function initContent(){
if (self.API != null && self.tracking.document.pwsTracking != null)
{
self.content.location.href = contentUrl;
}else if(self.tracking.document.appletpea!= null)
{ //question appletpea
self.content.location.href = contentUrl;
}
else{
setTimeout("initContent()", 500);
}
}
// initialize content tracking applets
function initContentTracking() {
if (self.document.API != null && self.document.pwsTracking != null)
{
top.API = self.document.API; // enable scorm content to find the
API more easily
if (location.search) {
var searchArray = getSearchAsNameArray();
if (searchArray[URL]) { // the tracking window is an opener
var contentUrl = searchArray[URL];
var delim = "?"
window.open(contentUrl, "contentWindow",
"resizable,scrollbars,menubar,dependent,toolbar,status");
}
if (searchArray[STUD_CPNT_ID] && searchArray[MODULE_ID]) {
self.document.pwsTracking.setModuleInfo(searchArray[STUD_CPNT_ID],
searchArray[MODULE_ID], searchArray[MODULE_NAME]);
self.document.API.setStudCpntID(searchArray[STUD_CPNT_ID]);
self.document.API.setModuleID(searchArray[MODULE_ID]);
}
if (searchArray[SERVER_URI] && searchArray[PROXLET_URI]) {
var serverURI = searchArray[SERVER_URI];
var proxyURI = searchArray[PROXLET_URI];
self.document.pwsTracking.setServerURL(serverURI +
searchArray[TRACKING_RETURN]);
self.document.API.setServerURL(serverURI +
searchArray[SCORM_RETURN]);
proxyURI = proxyURI.substring(proxyURI.length-1) !=
"/" ? proxyURI + "/" : proxyURI;
self.document.pwsTracking.setProxyURL(proxyURI +
PROXLET_SERVLET_ALIAS);
self.document.API.setProxyURL(proxyURI +
PROXLET_SERVLET_ALIAS);
}
}
} else {
setTimeout("initContentTracking()", 500);
}
}
// initialize question tracking applet
function initQuestionTracking() {
if (self.document.appletpea != null) {
if (location.search) {
var searchArray = getParamsByName();
if (searchArray[STUD_CPNT_ID]) {
self.document.appletpea.setStudCpntID(searchArray[STUD_CPNT_ID]);
self.document.appletpea.setModuleID(searchArray[MODULE_ID]);
self.document.appletpea.setExamID(searchArray[EXAM_ID]);
self.document.appletpea.setIteration(searchArray[ITERATION]);
self.document.appletpea.setExamType(searchArray[EXAM_TYPE]);
self.document.appletpea.setSurvey(searchArray[SURVEY]);
self.document.appletpea.setExamFinished(searchArray[FINISHED]);
self.document.appletpea.setQuestionNo(searchArray[QUESTION_NO]);
}
}
if (searchArray[SERVER_URI] && searchArray[PROXLET_URI]) {
var serverURI = searchArray[SERVER_URI];
var proxyURI = searchArray[PROXLET_URI];
self.document.appletpea.setServerURL(serverURI);
proxyURI = proxyURI.substring(proxyURI.length-1) != "/" ? proxyURI
+ "/" : proxyURI;
self.document.appletpea.setProxyURL(proxyURI +
PROXLET_SERVLET_ALIAS);
}
} else {
setTimeout("initQuestionTracking()", 500);
}
on one only on one computer - dozens of others work fine). I have
made sure they all have same IE and java, and I get error in Firefox
also. Any hit appreciated on where to look for a rights problem on
access denied error. What is weird, is if the user clicks refresh, it
works!
Here is the line with the issue, and below is more of the code:
if (self.API != null && self.tracking.document.pwsTracking != null) {
self.content.location.href = contentUrl;
}else if(self.tracking.document.appletpea!= null)
{ //question appletpea
And below is bigger picture.
//modify the line below if you have changed the servlet alias in the
proxlet.war's web.xml.
var PROXLET_SERVLET_ALIAS = "CrossDomainProxlet";
// general global parameters
var URL = "CONTENT_URL";
var STUD_CPNT_ID = "STUD_CPNT_ID";
var MODULE_ID = "MODULE_ID";
var MODULE_NAME = "MODULE_NAME";
var EXAM_ID = "EXAM_NAME";
var ITERATION = "ITERATION";
var EXAM_TYPE = "EXAM_TYPE";
var SURVEY = "SURVEY";
var FINISHED = "FINISHED";
var QUESTION_NO = "QUESTION_NO";
var SERVER_URI ="SERVER_URI"
var PROXLET_URI = "PROXLET_URI"
var PARAMS = "PARAMS"
var SCORM_RETURN="SCORMRETURN"
var TRACKING_RETURN="TRACKINGRETURN"
var debugMode = true;
// convert location.search into an array of values indexed by name
function getSearchAsNameArray() {
var minNav3 = (navigator.appName == "Netscape" &&
parseInt(navigator.appVersion) >= 3);
var minIE4 = (navigator.appName.indexOf("Microsoft") >= 0 &&
parseInt(navigator.appVersion) >= 4);
var minDOM = minNav3 || minIE4; // baseline DOM required for this
function
var results = new Array();
if (minDOM) {
var input = location.search.substr(1);
var tempresults = new Array();
if (input) {
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
tempresults[tempArray[0]] = decodeURIComponent(tempArray[1]);
}
input = tempresults[PARAMS];
tempArray = new Array();
if (input) {
input = decodeURIComponent(input);
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
results[tempArray[0]] = decodeURIComponent(tempArray[1]);
}
}else {
results = tempresults;
}
}
}
return results;
}
function getParamsByName() {
var minNav3 = (navigator.appName == "Netscape" &&
parseInt(navigator.appVersion) >= 3);
var minIE4 = (navigator.appName.indexOf("Microsoft") >= 0 &&
parseInt(navigator.appVersion) >= 4);
var minDOM = minNav3 || minIE4; // baseline DOM required for this
function
var results = new Array();
if (minDOM) {
var input = unescape(location.search.substr(1));
if (input) {
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
results[tempArray[0]] = tempArray[1];
}
}
}
return results;
}
// convert location.search into an array of names and values
function getSearchAsIndexArray() {
var minNav3 = (navigator.appName == "Netscape" &&
parseInt(navigator.appVersion) >= 3);
var minIE4 = (navigator.appName.indexOf("Microsoft") >= 0 &&
parseInt(navigator.appVersion) >= 4);
var minDOM = minNav3 || minIE4; // baseline DOM required for this
function
var results = new Array();
if (minDOM) {
var input = location.search.substr(1);
if (input) {
var searchArray = input.split("&");
var tempArray = new Array();
for (var i = 0; i < searchArray.length; i++) {
tempArray = searchArray.split("=");
results[i*2] = tempArray[0]
results[(i*2)+1] = decodeURIComponent(tempArray[1]);
}
}
}
return results;
}
// initialise the content and tracking frames for a wrapper frameset
var contentUrl;
function initWrapper(trackingUrl) {
if (location.search) {
//var params = getSearchAsNameArray();
var searchArray = getSearchAsIndexArray();
var delim = "";
var searchStr = ""
// load the content into one frame and remove the content URL from
parameters passed to the tracking frame
for (var i = 0; i < searchArray.length {
if (searchArray == URL) { // load content
contentUrl = searchArray[i+1];
//contentUrl = params;
} else if(searchArray == PARAMS){
//do nothing with PARAMS
}else {
searchStr += (delim + searchArray + "=" +
encodeURIComponent(searchArray[i+1]));
delim = "&";
}
i++; i++;
}
// load the frames
trackingUrl = trackingUrl.indexOf("?") >= 0 ? trackingUrl + "&" +
searchStr : trackingUrl + "?" + searchStr;
self.tracking.location.href = trackingUrl;
//
self.tracking.document.pwsTracking.setContentURL(contentUrl); //for
bookmark
contentUrl = contentUrl.indexOf("?") >= 0 ? contentUrl + "&" +
searchStr : contentUrl + "?" + searchStr;
initContent();
}
}
// initialize content window after the tracking applets have been
loaded
function initContent(){
if (self.API != null && self.tracking.document.pwsTracking != null)
{
self.content.location.href = contentUrl;
}else if(self.tracking.document.appletpea!= null)
{ //question appletpea
self.content.location.href = contentUrl;
}
else{
setTimeout("initContent()", 500);
}
}
// initialize content tracking applets
function initContentTracking() {
if (self.document.API != null && self.document.pwsTracking != null)
{
top.API = self.document.API; // enable scorm content to find the
API more easily
if (location.search) {
var searchArray = getSearchAsNameArray();
if (searchArray[URL]) { // the tracking window is an opener
var contentUrl = searchArray[URL];
var delim = "?"
window.open(contentUrl, "contentWindow",
"resizable,scrollbars,menubar,dependent,toolbar,status");
}
if (searchArray[STUD_CPNT_ID] && searchArray[MODULE_ID]) {
self.document.pwsTracking.setModuleInfo(searchArray[STUD_CPNT_ID],
searchArray[MODULE_ID], searchArray[MODULE_NAME]);
self.document.API.setStudCpntID(searchArray[STUD_CPNT_ID]);
self.document.API.setModuleID(searchArray[MODULE_ID]);
}
if (searchArray[SERVER_URI] && searchArray[PROXLET_URI]) {
var serverURI = searchArray[SERVER_URI];
var proxyURI = searchArray[PROXLET_URI];
self.document.pwsTracking.setServerURL(serverURI +
searchArray[TRACKING_RETURN]);
self.document.API.setServerURL(serverURI +
searchArray[SCORM_RETURN]);
proxyURI = proxyURI.substring(proxyURI.length-1) !=
"/" ? proxyURI + "/" : proxyURI;
self.document.pwsTracking.setProxyURL(proxyURI +
PROXLET_SERVLET_ALIAS);
self.document.API.setProxyURL(proxyURI +
PROXLET_SERVLET_ALIAS);
}
}
} else {
setTimeout("initContentTracking()", 500);
}
}
// initialize question tracking applet
function initQuestionTracking() {
if (self.document.appletpea != null) {
if (location.search) {
var searchArray = getParamsByName();
if (searchArray[STUD_CPNT_ID]) {
self.document.appletpea.setStudCpntID(searchArray[STUD_CPNT_ID]);
self.document.appletpea.setModuleID(searchArray[MODULE_ID]);
self.document.appletpea.setExamID(searchArray[EXAM_ID]);
self.document.appletpea.setIteration(searchArray[ITERATION]);
self.document.appletpea.setExamType(searchArray[EXAM_TYPE]);
self.document.appletpea.setSurvey(searchArray[SURVEY]);
self.document.appletpea.setExamFinished(searchArray[FINISHED]);
self.document.appletpea.setQuestionNo(searchArray[QUESTION_NO]);
}
}
if (searchArray[SERVER_URI] && searchArray[PROXLET_URI]) {
var serverURI = searchArray[SERVER_URI];
var proxyURI = searchArray[PROXLET_URI];
self.document.appletpea.setServerURL(serverURI);
proxyURI = proxyURI.substring(proxyURI.length-1) != "/" ? proxyURI
+ "/" : proxyURI;
self.document.appletpea.setProxyURL(proxyURI +
PROXLET_SERVLET_ALIAS);
}
} else {
setTimeout("initQuestionTracking()", 500);
}