1
如何告訴jQuery自動使用「jsonp」進行跨域ajax請求,同時繼續使用「json」進行同域請求?我想在JavaScript中編寫客戶端庫,僅在必要時才使用jsonp。讓我們這個小片段爲例:自動使用jsonp進行跨域ajax請求
jQuery.ajax(url, {
dataType: "jsonp"
});
當數據類型爲「JSONP」然後jQuery的總是使用JSONP但已經自動檢測,如果它可以發送一個正常的Ajax請求(同域請求),或者如果它必須使用JavaScript注入(用於跨域請求)。
因此,看來jQuery已經能夠自動檢測到這一點,並決定使用哪種技術。但是當標準的Ajax請求可能時,不需要使用jsonp,所以我只想爲「跨域請求」使用「jsonp」。我怎樣才能做到這一點?
或者也許有可能問,如果一個URL是跨域的或不是?然後我可以自己檢查這個,並用不同的數據類型調用jQuery.ajax。
如果你要編寫處理JSONP的代碼,它有什麼不同?通過jQuery它或多或少都是透明的;你的回調被稱爲某種方式或其他。 – Pointy 2011-06-03 13:20:17
比方說,我喜歡只在必要時才使用「黑客」。而JSONP是必要的,直到CORS被所有主流瀏覽器支持。 – kayahr 2011-06-03 13:27:30
如果你要在JavaScript庫中使用標準方法,那麼會有輕微的黑客攻擊。你可以檢查當前的網址和目標網址。不理想但相當簡單。 – 2011-06-03 13:28:04