社区
Ajax
帖子详情
无法获得完整的js文件
GavinLi
2006-08-29 10:53:29
为什么我通过HTTPxmlRequest "GET"服务器上的一个js文件,得到的文件内容不完整呢(取responseText的值)?
js文件大小为6.62k,是不是get方法有大小限制啊?该如何解决呢?????
...全文
320
12
打赏
收藏
无法获得完整的js文件
为什么我通过HTTPxmlRequest "GET"服务器上的一个js文件,得到的文件内容不完整呢(取responseText的值)? js文件大小为6.62k,是不是get方法有大小限制啊?该如何解决呢?????
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shenjf2000
2006-08-29
打赏
举报
回复
o
shenjf2000
2006-08-29
打赏
举报
回复
这个问题同是否eval无关,你alert出来的内容同js内容不一致说明ajax取得的数据就不对,就不用考虑后面的执行是否正确,缩小范围检查。xuzuning(唠叨)说的方法也是让你检查ajax取得的数据长度,因此你注意力就在这个方面,看看requestHelper对象中的getDoc方法是怎样实现的等等。
GavinLi
2006-08-29
打赏
举报
回复
问题已经找到,是js文件有问题。谢谢大家^_^
GavinLi
2006-08-29
打赏
举报
回复
To xuzuning(唠叨):
我是放在header对象下面,可以不用eval。
shenjf2000
2006-08-29
打赏
举报
回复
你使用的RequestHelper对象是一个封装好的js对象,不知道是否这个里面出了问题,可能是它的getDoc不对,lz跟踪调试一下看看。因为你的XMLHTTPRequest对象及调用是封装在这个里面的,另外你使用的是同步调用,它这个对同步调用的处理可能有点问题。
xuzuning
2006-08-29
打赏
举报
回复
检查返回数据的长度
alert(obj.responseText.length);
注意,返回的是文本!需要用eval使之生效
GavinLi
2006-08-29
打赏
举报
回复
//动态装载js文件对象
function JsFileHelper()
{
this.loadFile = loadFile;
this.loadJsFile = loadJsFile;//动态装载js文件函数
this.loadCssFile = loadCssFile;//动态装载css文件函数
}
function loadFile(fileName,path)
{
var xDoc = null;
var url ="Client/BLL/"+fileName;
var params = "";
var httpMethod = "GET";
var docType = "txt";
if ( path )
url = path+"/"+fileName;
var oRequest = new RequestHelper();
oRequest.sendRequest(url,params,httpMethod,docType,false,null);
xDoc = oRequest.getDoc();
return xDoc;
}
function loadJsFile(objectID,fileName,path)
{
var oHead = null;
var oScript= document.getElementById(objectID);
if ( !oScript )
{
oHead = document.getElementsByTagName('head')[0];
oScript = document.createElement('script');
oScript.id = objectID;
oScript.type = "text/javascript";
oScript.text = this.loadFile(fileName,path);
oHead.appendChild(oScript);
}
if ( objectID == "AdminProduct" )
{
alert(oScript.text);
}
}
function loadCssFile(objectID,fileName,path)
{
var oHead = null;
var oScript= document.getElementById(objectID);
if ( !oScript )
{
oHead = document.getElementsByTagName('head')[0];
oScript = document.createElement('link');
oScript.id = objectID;
oScript.type = "text/css";
oScript.rel = "stylesheet";
oScript.href = path+"/"+fileName;//this.loadFile(fileName,path);
oHead.appendChild(oScript);
}
}
GavinLi
2006-08-29
打赏
举报
回复
调用的方法如下(因为涉及到太多的js对象,贴完就太多啦,请大家自己试试看看):
function updateProduct(ID)
{
oBaseInfo.ID = ID;
oBaseInfo.file.loadJsFile("AdminProduct","AdminProduct.js",null); //这里请求js文件
if ( !this.oAdminProductForm)
this.oAdminProductForm = new AdminProductForm();//这里new js文件定义的对象
//this.oAdminProductForm.loadAdminProductFormUI();
//this.oAdminProductForm.iniProductControls();
//this.oAdminProductForm.getProductDetail();
}
GavinLi
2006-08-29
打赏
举报
回复
To shenjf2000(一路走来):
已经察看过啦,alert的内容和原文件的内容不一致。我就奇怪了,有个js文件大小为6.73k,都可以照样get得到完整内容,为什么我这个js文件不得呢,怪了。难道是我写法有问题嘛?
js文件内容如下如下,请大家试试:
function AdminProductForm()
{
this.ddlFirstType = null;
this.ddlSecondType = null;
this.txtName = null;
this.txtDesc = null;
this.iniProductControls = iniProductControls;
this.getFirstProductType = getFirstProductType;
this.getSecondProductType = getSecondProductType;
this.getAdminProductFormUI = getAdminProductFormUI;
this.loadAdminProductFormUI= loadAdminProductFormUI;
this.getProductDetail=getProductDetail;
this.saveProduct = saveProduct;
this.deleteProduct = deleteProduct;
this.changeFirstProductType = changeFirstProductType;
this.checkProductInfo = checkProductInfo;
}
function getAdminProductFormUI()
{
oBaseInfo.createContainer();
var xDoc = oBaseInfo.sendMyRequest("Template/AdminProduct.html","GET","","txt",false,null);
oBaseInfo.container.innerHTML = xDoc;
}
function loadAdminProductFormUI()
{
var containerBody = document.getElementById("divBody");
var xDoc = oBaseInfo.sendMyRequest("Template/AdminProduct.html","GET","","txt",false,null);
containerBody.innerHTML = xDoc;
}
function getProductDetail()
{
var oDocHelper = null;
var ddlFirstValue = null;
var ddlSecondValue= null;
var url = "Server/BLL.asp?formID="+P_DETAIL+"&id="+oBaseInfo.ID+"&action=update";
var xDoc = oBaseInfo.sendMyRequest(url,"GET",null,"xml",false,null);
if ( xDoc )
{
oDocHelper = new DocHelper(xDoc);
this.txtName.value = oDocHelper.getValue("name",0);
this.txtDesc.value = oDocHelper.getValue("description",0);
ddlFirstValue = oDocHelper.getValue("category",0);
ddlSecondValue = oDocHelper.getValue("subcategory",0);
for ( var i=0;i < this.ddlFirstType.options.length; i++ )
{
if ( this.ddlFirstType.options[i].text == ddlFirstValue )
{
this.ddlFirstType.[i].selected = true;
break;
}
}
this.changeFirstProductType();
for ( var i=0;i < this.ddlSecondType.options.length; i++ )
{
if ( this.ddlSecondType.options[i].text == ddlSecondValue )
{
this.ddlSecondType.[i].selected = true;
break;
}
}
}
}
function iniProductControls()
{
this.ddlFirstType = document.getElementById("ddlFirstItems");
this.ddlSecondType = document.getElementById("ddlSecondItems");
this.txtName = document.getElementById("txtProductName");
this.txtDesc = document.getElementById("txtDesc");
oBaseInfo.ActionType = "ADD";
this.getFirstProductType();
}
function getFirstProductType()
{
var nodeList = null;
var url = "Server/BLL.asp?formID="+F_FMENU;
var myDoc = oBaseInfo.sendMyRequest(url,"GET","","xml",false,null);
if ( myDoc )
{
nodeList = myDoc.documentElement.selectNodes("//TreeNode");
for ( var i = 0; i < nodeList.length; i++ )
{
var option = document.createElement( "OPTION" );
option.innerText = nodeList[i].getAttribute("text");
option.value = nodeList[i].getAttribute("id");
this.ddlFirstType.appendChild(option);
}
}
}
function getSecondProductType()
{
var nodeList = null;
var url = "Server/BLL.asp?formID="+F_SMENU+"&id="+this.ddlFirstType.options[this.ddlFirstType.selectedIndex].value;
var myDoc = oBaseInfo.sendMyRequest(url,"GET","","xml",false,null);
if ( myDoc )
{
this.ddlSecondType.length=0;
nodeList = myDoc.documentElement.selectNodes("//TreeNode");
for ( var i = 0; i < nodeList.length; i++ )
{
var option = document.createElement( "OPTION" );
option.innerText = nodeList[i].getAttribute("text");
option.value = nodeList[i].getAttribute("id");
this.ddlSecondType.appendChild(option);
}
}
}
function checkProductInfo()
{
var iTypeID = null;
var sName = null;
var sDesc = null;
sName = this.txtName.value;
sDesc = this.txtDesc.value;
iTypeID = this.ddlSecondType.selectedIndex;
if ( sName == "" )
{
oBaseInfo.alertMessage(E_EMPTY_NAME);
return false;
}
if ( sDesc == "" )
{
oBaseInfo.alertMessage(E_EMPTY_DESC);
return false;
}
if ( iTypeID < 0 )
{
oBaseInfo.alertMessage(E_EMPTY_TYPE);
return false;
}
}
function saveProduct()
{
var bFlag = false;
var iID = null;
var iTypeID = null;
var sName = null;
var sDesc = null;
var params = null;
var oDocHelper = null;
var xDoc = null;
var url = null;
if ( this.checkProductInfo() == false )
return;
sName = escape(this.txtName.value);
sDesc = escape(this.txtDesc.value);
iTypeID = this.ddlSecondType.options[this.ddlSecondType.selectedIndex].value;
params = "typeid="+iTypeID+"&name="+sName+"&desc="+sDesc;
if ( oBaseInfo.ActionType =="UPDATE" )
{
iID = oBaseInfo.ID;
params = params+"&id="+iID;
url = "Server/BLL.asp?formID="+F_UPDATE_PRODUCT+"&action=update";
}
else
{
url = "Server/BLL.asp?formID="+F_ADD_PRODUCT+"&action=add";
}
xDoc = oBaseInfo.sendMyRequest(url,"POST",params,"xml",false,null);
if ( xDoc )
{
oDocHelper = new DocHelper(xDoc);
if ( oDocHelper.getValue("AdminProduct",0) =="true" )
bFlag = true;
else
bFlag = false;
}
if ( bFlag == true )
{
oBaseInfo.alertMessage(null);
}
else
{
oBaseInfo.alertMessage(E_SAVE_FAILURE);
}
}
function deleteProduct(isFirstType)
{
var bFlag = false;
var iID = null;
var params = null;
var oDocHelper = null;
var xDoc = null;
var url = null;
iID = oBaseInfo.ID;
url = "Server/BLL.asp?formID="+F_DELETE_PRODUCT+"&action=delete";
params = "id="+iID;
xDoc = oBaseInfo.sendMyRequest(url,"POST",params,"xml",false,null);
if ( xDoc )
{
oDocHelper = new DocHelper(xDoc);
if ( oDocHelper.getValue("AdminProduct",0) =="true" )
bFlag = true;
else
bFlag = false;
}
if ( bFlag == true )
{
oBaseInfo.formID = P_PRODUCT_LIST;
oBaseInfo.loadForm();
}
else
{
oBaseInfo.alertMessage(E_DELETE_FAILURE);
}
}
function changeFirstProductType()
{
this.getSecondProductType();
}
shenjf2000
2006-08-29
打赏
举报
回复
不过我觉得是get方法的可能性较小,也许不是得到文件内容不完整,而是你的js页面有问题。你先直接用ie看看你输出的js内容,然后在应用页面alert(XMLHttpreuest.responseText)看看是否一致。
shenjf2000
2006-08-29
打赏
举报
回复
有可能,不过get方法是发送的字节数有限制而不是接受的,你先试试POST方法看看。
javascript
文件
中获取当前
文件
路径
在开发javascript插件的过程中,我们有时候需要获取当前
JS
文件
的路径,用于自动加载一些图片、CSS等外部资源,但是javascript
文件
中并没有像PHP那样的__FILE__常量来供我们取得当前
文件
路径
通过
js
获取本地
文件
夹中的
文件
列表
总的来说,虽然JavaScript
无法
直接遍历本地
文件
夹,但通过File System Access API或`<input type="file">`元素,我们可以与用户交互来获取和处理本地
文件
。这为Web应用程序提供了有限但实用的
文件
系统访问能力,同时...
在html页面使用JavaScript实行
文件
上传到本地服务器并获取
文件
所在路径
使用JavaScript实现
文件
上传到本地服务器并获取到上传后
文件
所在路径,是由到JavaScript,java以及html页面。这个比较好,不是在
js
p上获取路径,
js
p太简单了,而且过时了,所以就在html页面实现了下功能,我主要是做...
pdf.
js
使用
文件
流预览pdf
PDF.
js
支持
文件
流预览,意味着我们可以从服务器获取PDF的数据流,然后逐步解析和显示内容,而不需要等待整个
文件
下载完成。 要使用PDF.
js
实现
文件
流预览PDF,我们需要以下几个步骤: 1. **设置项目环境**:由于...
js
获取 input file 图片立即显示
"
js
获取input file 图片立即显示"这个话题就是关于如何利用JavaScript来实现在用户选择图片后即时预览的功能。以下是一个详尽的步骤解释和相关知识点: 1. **HTML 结构**: 首先,我们需要在HTML页面中创建一个`...
Ajax
52,792
社区成员
25,335
社区内容
发帖
与我相关
我的任务
Ajax
Web 开发 Ajax
复制链接
扫一扫
分享
社区描述
Web 开发 Ajax
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章