转载 http://www.cnblogs.com/benwu/archive/2012/12/25/2832981.html

 

种被有关ajax jsonp的使,

*出现了问题:可以成功赢得请结果,但无履success方法
到底搞定了,记录转

 function TestAjax()
 {
    $.ajax({
        type : “get”,
        async : false,
        url : “ajaxHandler.ashx”, //实际上访问时有的地方为:
ajax.ashx?callbackfun=jsonpCallback&id=10
        data : {id : 10},
        cache : false, //默认值true
        dataType : “jsonp”,
        jsonp:
“callbackfun”,//传递给告处理程序或页面的,用以获得jsonp回调函数名为之参数名为(默看:callback)
        jsonpCallback:”jsonpCallback”,
           
//自定义之jsonp回调函数名,默认为jQuery自动生成的自由函数名
           
//如果这里从定矣jsonp的回调函数,则success函数则不起作用;否则success将由作用
        success : function(json){
            alert(json.message);
        },
        error:function(){
            alert(“erroe”);
        }
    });
}

function jsonpCallback(data) //回调函数
{
    alert(data.message); //
}
 

public class ajaxHandler : IHttpHandler
{
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = “text/plain”;
        string callbackfun = context.Request[“callbackfun”];
        context.Response.Write(callbackfun + “({name:\”John\”,
message:\”hello John\”})”);
        context.Response.End();
    }
    public bool IsReusable {get {return false;}
}


ajax请求参数说明:
dataType string 服务器返回的数据类型。
 如果无点名,jQuery 将电动根据 HTTP 包 MIME 信息来智能判断,比如XML
MIME类型就于识别为XML。
可用值:
“xml”: 返回 XML 文档,可用 jQuery 处理。
“html”: 返回纯文本 HTML 信息;包含的script标签会在插入dom时实行。
“script”: 返回纯文本 JavaScript
代码。不见面自行缓存结果。除非设置了”cache”参数。
   
注意:在长距离请求时(不在与一个域下),所有POST请求都将转为GET请求。(因为将祭DOM的script标签来加载)
“json”: 返回 JSON 数据 。
“text”: 返回纯文本字符串
“jsonp”:jsonp格式。使用jsonp形式调用函数时,
做客url时会见活动将url后面加加上要”callback=callbackFunName”
以执行回调函数(callbackFunName)。

jsonp string
以一个jsonp请求被再写回调函数的名字。这个值用来代表于”callback=?”这种get或post请求被url参数里的”callback”部分,
按部就班 jsonp:’callbackfun’ 则拿会变卦”callbackfun=?”传给服务器。

jsonpCallback String  此参数为jsonp请求指定一个回调函数名。
这个价将为此来取代jQuery自动生成的随意函数称为。
即上面”callback=?”中的问号部分
及时要用来吃jQuery生成度独特的函数誉为,这样要重易,也会便于地提供回调函数和错误处理。
否可以在怀念被浏览器缓存GET请求的早晚,指定这个回调函数叫。

 ajax
jsonp同一般的ajax请求的要分在——请求响应结果的拍卖。如上面代码所著之应结果也:

  jsonpCallback({ name:”world”,message:”hello world”});

其实就是调用jsonp回调函数jsonpCallback,并将响应的字符串或json传入此措施,

至于从自然了jsonpjQuery的回调函数, success函数则不起作用
约其底层的落实(当然这是默认的回调函数的下,否则便非会见尽success的方法吧):
function default_jsonpCallback(data)
{
    success(data); //在默认的回调方法中履行
}*

 

终极一个比较简单的点子,

$.getJSON(“GetUserbyName.aspx?name=ww&callback=?”,
function(date)
{
//….
}
)

 

相关文章

网站地图xml地图