prototype.js不能传值

EasyHan 发布于 2011/07/18 22:44
阅读 430
收藏 0

我的是IE9,用1.7 rc3版本的prototype.js,不能传值到后台,JS代码如下:

.net后台接收的代码: Request.QueryString["ajax_type"].ToString();

URL是正确的,但是到后台,参数就成为NULL了,页面alert()都是正常的,请教!

        function godwon(file_path_t) {
            var url = "action/action.aspx";
            var params = "ajax_type="+encodeURI('101')+"&&file_name="+encodeURI('c:\temp\1.gif');
            var myAjax = new Ajax.Request(
            url, {
                method: "post",
                parameters: params,
                onComplete: function(transport) {
                    getDownFile(transport);
                }
            }
        );
        }
        function getDownFile(transport) {
            if (4 == transport.readyState) {
                if (200 == transport.status) {
                    var reStr = transport.responseText;
                    alert(reStr);
                }
                else {
                    alert("您所请求的页面有异常!");
                    window.location.reload();
                }
            }
        }
加载中
0
鉴客
鉴客
这里还有文件上传??
0
qycms_cn
qycms_cn

js一般是不允许直接读取本地文件的,看一下是不是安全问题,问题应该是发生在:encodeURI('c:\temp\1.gif')这句话中。

如果排除这些之外:还有就是params这个有问题,好像prototype中的ajax的param应该是一个值对像var params = {},而不是string.


params.ajax_type=encodeURI('101');

params.file_name=...

0
EasyHan
EasyHan

引用来自“杨金焕”的答案

js一般是不允许直接读取本地文件的,看一下是不是安全问题,问题应该是发生在:encodeURI('c:\temp\1.gif')这句话中。

如果排除这些之外:还有就是params这个有问题,好像prototype中的ajax的param应该是一个值对像var params = {},而不是string.


params.ajax_type=encodeURI('101');

params.file_name=...

老兄,我这个不是传文件,encodeURI('c:\temp\1.gif')只是一个字符串吧了,我在后台当它是个字符串,param也没有问题,现在我发现只要把method="post" 改成 method ="get"就没有问题,请问你们遇到过吗?

0
子木007
子木007
请用  encodeURIComponent('c:\temp\1.gif') 试试。
0
EasyHan
EasyHan

也找到解决方法,谢谢各位。

王二铁
王二铁
这小哥太勤奋了,9个月前....
EasyHan
EasyHan
回复 @王建奎Jerrick : Request["ajax_type"].ToString();这样子就可以正常接收数据了。
王二铁
王二铁
找到解决办法就该分享下吧
返回顶部
顶部