ajax调用后台方法,求大神

问题描述

ajax调用后台方法,求大神
写了一段ajax的代码,原意是打算,当选择句子时,用ajax将选中的句子传回后台,当ajax回传成功时,执行后台方法BTCompare。但是现在页面加载的时候直接执行了BTCompare,反而点击按钮触发ajax的时候不执行

        //选取句子,点击按钮,传送回后台        function ajaxSend() {            $('#btnSend').attr('disabled' true)            $.ajax({                type: ""Post""                url: ""Reader.aspx/GetStr""                async: false                data:""{'s':'""+selectedText+""'}""                contentType: ""application/json; charset=utf-8""                dataType: ""json""                success: function (data) {                     alert(data.d);                    if (data.d)                    {                        function Init() {                            var s = '<%=BtCompare() %>';                        }                    }                }                error: function (err) {                    alert(""data error"");                }            });        }        document.onmousedown = function () { selectedText = false; }        document.onmouseup = function (e) {            e = e || window.event;            selectedText = window.getSelection ? window.getSelection().toString() : document.selection ? document.selection.createRange().text : false;            if (selectedText) {                //判断页面是否有滚动,有的话还得加上滚动的距离,要不按钮定位不准                var sl = Math.max(document.documentElement.scrollLeft document.body.scrollLeft)                st = Math.max(document.documentElement.scrollTop document.body.scrollTop);                $('#btnSend').css({ left: e.clientX + sl top: e.clientY + st }).show().attr('disabled' false);            }        }

解决方案

 var s = '<%=BtCompare() %>';

是服务器端的代码,肯定是执行完毕了才会向客户端发送你的值。

你这个要求另外发送一个ajax请求就好了,或者将你的BtCompare放到Reader.aspx/GetStr这个方法里面调用,然后输出你内容就好了,通过回调函数的参数data可以得到你的BtCompare返回值

注意GetStr是通过Response.Write输出或者直接return 返回BtCompare的值,不能设置服务器控件的内容,这2个是不同的请求,不会反映到你的html页面

 [WebMethod]    public static string GetStr(string s)    {        return BtCompare(s);//////////////////////    }    private string BtCompare(string s)////////参加参数,是从客户端发送的选择的网页内容,自己修改参数    {        //在页面选中一段句子,在某个地方弹出一个按钮,点击按钮,将选中的句子传入到下面的s当中,然后调用方法,将两个东西传入到o.txt和s.txt,然后比较,接着切割句子,最后输出        //string s = ""As a linguist he acknowledges that all varieties of human language including non-standard ones like Black English can be powerfully expressive--there exists no language or dialect in the world that cannot convey complex ideas."";//在前台选中语句,传入到这里        demo gg = new demo();        string[] sentence = gg.SentenceDetect(linkWord);        string otxt = gg.Parse(sentence);//放在o.txt        FileStream fotxt = new FileStream(@""D:\parser\o.txt"" FileMode.Create);        StreamWriter ot = new StreamWriter(fotxt);        ot.Write(otxt);        ot.Flush(); //清除缓存        ot.Close();        ot.Dispose();        fotxt.Close();        DoParser doq = new DoParser();        string stxt = doq.parser(linkWord);//放在s.txt        FileStream fstxt = new FileStream(@""D:\parser\s.txt"" FileMode.Create);        StreamWriter st = new StreamWriter(fstxt);        st.Write(stxt);        st.Flush();        st.Close();        st.Dispose();        fstxt.Close();        Process p = new Process();        p.StartInfo.FileName = @""cmd.exe"";        p.StartInfo.UseShellExecute = false;        p.StartInfo.RedirectStandardInput = true;        p.StartInfo.RedirectStandardOutput = true;        p.StartInfo.RedirectStandardError = true;        p.StartInfo.CreateNoWindow = true;        p.Start();        string str = ""D:\BCompare\BCompare.exe @D:\parser\BCconsle.txt D:\parser\o.txt D:\parser\s.txt D:\学习档案\Reading\Reading\report.html "";//保存到当前目录下        p.StandardInput.WriteLine(str);        p.StandardInput.WriteLine();        p.StandardInput.AutoFlush = true;        p.StandardInput.WriteLine(""exit"");        p.StandardOutput.ReadToEnd();        p.Close();        Report.Text = ""<iframe src='report.html'frameborder='0' height=350px width=100%></iframe>"";        Utils uu = new Utils();        //String[] ss = uu.subSentenceASC(s);//先长后短句        String[] ss = uu.subSentenceDESC(stxt);//先短后长句        int count = 0;                string rst="""";///////////        foreach (string aa in ss)        {             rst += ++count + ""、"" + aa + ""<br />"";///////////////////        }                return rst;    }
success: function (data) {                     alert(data.d);                    if (data.d)                    {////////将BtCompare得到的返回值设置到容器里面                                        $('#xxxxxxxxxxxxx').html(d.data);//注意修改选择器                    }                }
时间: 2024-08-03 02:44:05

ajax调用后台方法,求大神的相关文章

server-Java方法互相调用问题,求大神指教

问题描述 Java方法互相调用问题,求大神指教 我简化一下我的程序,大概是这个意思,定义了三个方法如下: public class Server(){public void A(){ B();//在A方法里面调用B } public void B(){ ----//B里面不调用别的方法 } public void C(){ A();//在C方法里面调用A } public static void main(String[] args) { Jnew Server(); } } 程序简化后大概是这

编程语言学习-编程 ajax 调用后台方法

问题描述 编程 ajax 调用后台方法 //15秒倒计时 var start = 15; var step = -1; function count() { document.getElementById("DaoJiShi").innerHTML = start; start += step; if (start < 0) start = 15; setTimeout("count()", 1000); } window.onload = count; 这么

c# timer 的使用方法 求大神指点啊!!!

问题描述 c# timer 的使用方法 求大神指点啊!!! class TimerExampleState { public int minute; public System.Threading.Timer tmr; } private static void Main() { System.Threading.Timer timer_addtoken; TimerExampleState state_addtoken = new TimerExampleState();//支付token更新

net-在Web用户控件ascx文件,怎么使用ajax调用后台方法并传参?

问题描述 在Web用户控件ascx文件,怎么使用ajax调用后台方法并传参? $.ajax({ type: "Post", url: "SetWidget.ascx/GetStr", data: "{'str':'我是','str2':'XXX'}", contentType: "application/json; charset=utf-8", dataType: "json", success: fun

timesetevent windows-vb.net 调用API问题求大神!!!

问题描述 vb.net 调用API问题求大神!!! 环境是VS2005,我要利用timesetevent编写一个计时程序做实验,毫秒级 Public Delegate Sub ipfunction(ByVal uID As Integer, ByVal uMsg As Integer, ByVal dwUser As Integer, ByVal dw1 As Integer, ByVal dw2 As Integer) Public Const TIME_PERIODIC = 1 public

web service-webservice调用请教,求大神解决!

问题描述 webservice调用请教,求大神解决! 最近在研究webservice,本人新手,遇到问题,想请假下,最好可以详细说明下怎么解决,谢谢,下面是myeclipse报的错: 解决方案 检查你的xsd的配置文件,你的xml有问题. 解决方案二: 你的配置文件出错了,检查一下 解决方案三: 求大神请教

qt-桌面Qt 界面整体旋转90度的方法 求大神指导

问题描述 桌面Qt 界面整体旋转90度的方法 求大神指导 现在有一块横屏 想竖起来使用 所以需要让Qt界面整体旋转90 有什么方法可以实现 是在linux系统的Qt中实现

难点-PHP结合AJAX多条件搜索 求大神为我解答

问题描述 PHP结合AJAX多条件搜索 求大神为我解答 ![CSDN移动问答][2]ee_lz=1 想要一份这种源码,了解一下这个流程 万分感谢

think-分享代码调用问题,求大神解答 感激不尽

问题描述 分享代码调用问题,求大神解答 感激不尽 <volist name="list" id="vo" > 这里是遍历的文章 <script> window._bd_share_config = { common: { //此处放置通用设置[] bdText: '{$vo.title}', bdDesc: '{$vo.description|msubstr=###,0,150}', bdUrl: 'http://www.weiduhui.c