让jQuery.ajax更好地使用我的jsonp Web服务

让jQuery.ajax更好地使用我的jsonp Web服务,json,jquery,jsonp,jax-ws,Json,Jquery,Jsonp,Jax Ws,我很难让$.ajax使用我的Web服务 我有一个用Java编写的Web服务(我对Java很差劲),它需要像example.com/webservice/something/callback这样的URL 并返回类似JSONP的回调({“success”:true}) 我的jquery类似于: $.ajax({ type: "GET", dataType: "jsonp", url: '//example.com/someStuff', }).done(doSomething)

我很难让
$.ajax
使用我的Web服务

我有一个用Java编写的Web服务(我对Java很差劲),它需要像
example.com/webservice/something/callback这样的URL

并返回类似JSONP的
回调({“success”:true})

我的jquery类似于:

$.ajax({
    type: "GET", dataType: "jsonp",
    url: '//example.com/someStuff', 
}).done(doSomething)
问题是,jQuery为使JSONP正常工作所做的一切都把我搞砸了。它附加一个querystring(即callback=jQuery19786…
),其中我的服务只需要一个常规路径参数

如果我能以某种方式说服jQuery去做
example.com/webservice/something/jQuery19786…
,那就太理想了


想法?

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

$.ajax({
    type: "GET", dataType: "jsonp",
    url: '//example.com/someStuff/??', 
}).done(doSomething)
另一种方法是在jQuery修改url后使用beforeSend选项来操作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;
    }
});

看起来不像:-(.
//example.com/sometuff/??
被转换为
//example.com/sometuff?callback=…
等等。我撒谎了,哈哈。叛逆的分号把我搞砸了。这似乎是可行的。虽然现在我有了一个新问题…这个问题通过一个小的
缓存得到了解决:true
我也找到了另一种解决方法,可以使用beforeSend来修改url在它被发送之前。