0

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

我有一个我用 Java 编写的网络服务(我对 Java 很烂),它需要像这样的 urlexample.com/webservice/somestuff/callback

并返回 JSONPcallback({"success":true})

我的 jquery 类似于:

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

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

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

想法?

4

1 回答 1

2

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

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

另一种方法是在 jQuery 修改它之后使用 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;
    }
});
于 2013-04-16T20:35:25.420 回答