让jQuery.ajax与我的jsonp webservice一起玩得很好

时间:2013-04-16 20:30:23

标签: json jquery jsonp jax-ws

我很难让$.ajax使用我的网络服务。

我有一个用Java编写的web服务(我在Java上很糟糕),它希望像example.com/webservice/somestuff/callback这样的网址

并返回类似callback({"success":true})

的JSONP

我的jquery类似于:

$.ajax({
    type: "GET", dataType: "jsonp",
    url: '//example.com/someStuff', 
}).done(doSomething)

问题是,jQuery使JSONP工作的所有好东西让我搞砸了。它附加一个查询字符串(即?callback=jQuery19786...),我的服务只需要一个常规路径参数。

如果我能以某种方式说服jQuery做example.com/webservice/somestuff/jQuery19786...那将是理想的。

想法?

1 个答案:

答案 0 :(得分:2)

只需将??放在您希望回放的位置。

$.ajax({
    type: "GET", dataType: "jsonp",
    url: '//example.com/someStuff/??', 
}).done(doSomething)

另一种方法是使用beforeSend选项在jQuery修改它之后操作url:

$.ajax({
    url: "//example.com/foo/bar/?callback=?",
    dataType: "jsonp",
    cache: true,
    beforeSend: function(jqXHR,options){        
        options.url = options.url.replace(/\?callback\=/,"");
        //console.log(options.url);
        //return false;
    }
});