嗨我有一個大問題。我必須得到一些JSON表格localhost:8080。jQuery.ajax響應爲空或未定義
服務器端是基於restful的jax-rs服務器。
@Path("/m")
public class M {
@GET
@Path("{id: [a-z]{1,4}-\\d{1,4}}")
@Produces("application/json")
public Response getCar (@PathParam("id") final String id) {
final ResponseBuilder builder;
builder = Response.ok("{\"one\":\"bla\"}");
return builder.build();
}
}
對於同源策略,我有以下腳本上本地主機: '?回調=' 8080/JS /的script.js
function test (file) {
$.ajax({
type: 'GET',
url: file + '?callback=?',
dataType: 'json',
success: function (data) {
alert('works');
}
});
}
我不喜歡部分,但沒有這個響應是空的(HTTP-Body)。
現在的問題是,成功的方法永遠不會執行。當我將dataType更改爲「腳本」時,該方法將被調用,但傳遞的參數(數據)未定義。那麼我做錯了什麼?
發佈你的服務器端代碼+通過兩個「?」是個不錯的主意。在參數 – Bob 2010-09-10 14:48:13
如果您使用JSONP,'?callback =?'是正確的。 – 2010-09-10 14:49:59
@Byron Cobb,這是正確的,但不是在這種情況下。第二個'?'被jQuery用來提供一個動態的回調函數。在向服務器發出請求之前,它將替換爲該函數的名稱。 – 2010-09-10 14:51:10