关于JSONP的问题

时间:2013-08-20 22:06:00

标签: jquery json callback jsonp

有人能指出我正确的方向吗?

示例网址:         url.com/api/$order/config?fname=$fname&lname=$lname&ser​​ial_number=$sn

代码:

    var fullUrl = "[URLHERE.com]/api/$order/config?";
    $.ajax({
        url: fullUrl,
        contentType: "application/json",    
        dataType: "jsonp",
        type: 'GET',
        jsonp: '$callback',
        beforeSend: function setHeader(xhr) {
            xhr.setRequestHeader('Authorization', token);
        },
        success: callback,
        error: function (xhr, ajaxOptions, thrownError) {
            alert(thrownError);
        },
    }); 

问题:

“jsonp:'$ callback',”行是什么?

如何检索fname,lname和serial_number?

jsonp回调是否输出json数据文件?

1 个答案:

答案 0 :(得分:2)

来自jquery docs http://api.jquery.com/jQuery.ajax/

  

JSONP

     

类型:字符串

覆盖jsonp请求中的回调函数名称。在url中的查询字符串的callback部分中,将使用此值代替callback=?。因此{jsonp:'onJSONPLoad'}会导致onJSONPLoad=?传递给服务器。从jQuery 1.5开始,将jsonp选项设置为false可防止jQuery将?callback字符串添加到URL或尝试使用=?进行转换。在这种情况下,您还应该明确设置jsonpCallback设置。例如,{ jsonp: false, jsonpCallback: "callbackName" }

所以jsonp: '$callback',行将回调查询参数设置为php var $ callback

成功函数是回调。在代码中查找并检索那里的值

并且,是的,成功函数中的结果将是JSON