日期:2014-05-16  浏览次数:20614 次

jsonp 简单的返回结果问题!!新手求解!!!
客户端代码的一部分:
HTML code
    
                $("#btn").click(function () {
                 urlData = "sum=" + count + urlData;
                 $.ajax({
                     type: "post",
                     data: urlData + "&callback=?",
                     url: "http://localhost:3638/servertest1/pic.ashx?",
                     dataType: "jsonp",
                     success: function (data) {
//客户端jquery预先定义好的callback函数,成功获取跨域服务器上的json数据后,会动态执行这个callback函数 
                         alert(data);
                         alert("OOOOOKKKKKKK")
                     },
                     error: function () {
                         alert("error");
                     }
                 });



然后这是服务器端关键部分代码:
C# code

using System;
using System.Web;
using System.Data;
using System.Collections.Generic;
public class pic : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
        string strSum = context.Request.Params["sum"];
        string result =String.Empty;
        List<String> listString = new List<string>();
        if (null != strSum)
        {
            int sum = Convert.ToInt32(strSum);
            for (int i = 0; i < sum; i++)
            {
                string pic = context.Request.Params["pic" + i.ToString()];
                int le = pic.Length;
                pic = System.Web.HttpUtility.UrlDecode(pic);
                listString.Add(pic);
            }
            result = picHelper.Base64StringToImage(listString[0]);
        }   
            context.Response.ContentType = "text/plain";
            context.Response.Write(result);//我想通过这个,把服务器端处理得到的结果,返回给客户端;
            context.Response.End(); 

////////////////////////////////////////////////
 context.Response.Write(result);我想通过这个,把服务器端处理得到的结果,返回给客户端;其中已知result已经是一组字符串。但是折腾了一个通宵,客户端都还是弹error!!估计应该是返回json的时候出错了,是返回的格式问题??or....
请各位大神就帮帮忙吧!!太感激了!!

------解决方案--------------------
你指定为jsonp了,要在服务器端获取回调函数名并输出
C# code

context.Response.Write(context.Request.Form["callback"]+"('"+result+"')");//我想通过这个,把服务器端处理得到的结果,返回给客户端;