我正在使用jQuery:這是最好的方式來存儲基地址值的AJAX請求,在每種腳本可以以某種方式參考它的方式沒有手動更改每個更新?我應該將它存儲在窗口對象,html,全局變量還是什麼?提前謝謝了。設置全球基地址
Q
設置全球基地址
2
A
回答
4
您可以創建功能來自動執行:
var BASE_URL = 'http://www.foo.com/url-root/';
function getUrl(url) {
return BASE_URL.concat(url);
}
現在,whenervar你想有一個網址...
var url = getUrl('bar.php'); //returns 'http://www.foo.com/url-root/bar.php'
我你不希望它是全球...
(function() {
var BASE_URL = 'http://www.foo.com/url-root/';
window.getUrl = function(url) {
return BASE_URL.concat(url);
}
})();
或者你可以創建一個對象。
1
這會被認爲是危險的或一些壞的做法(請參閱下面的警告),但它可以讓你保持你的ajax調用清潔(沒有顯式的URL連接或方法調用)。
這是通過覆蓋$.ajax
方法的默認行爲來實現的,以便在將呼叫傳遞給真正的$.ajax
方法之前,在URL上添加我們自己的預處理。
這種方法具有相同的缺陷與使用$.ajaxSetup所以我會爲您提供從他們的文檔同樣的警告:
這裏指定的設置將影響到$阿賈克斯或 基於Ajax的衍生物,所有呼叫如$ .get()。這可能會導致不需要的行爲,因爲其他呼叫者(例如插件)可能會將 視爲正常的默認設置。爲此,我們強烈建議使用 來反對使用此API。相反,請在 調用中明確設置選項,或者定義一個簡單的插件來執行此操作。
function setBaseForAjax(base){
var oa = $.ajax; //keep a reference to the actual ajax call
$.ajax = function(){
var len = arguments.length,
newArgs = [],
newUrl = len === 2 && (typeof arguments[0]).toLowerCase() === 'string' ? arguments[0]: null,
newObj = len === 2 && (typeof arguments[1]).toLowerCase() === 'object' ? arguments[1] : (len === 1 && (typeof arguments[0]).toLowerCase() === 'object' ? arguments[0] : null);
if(newUrl){
newUrl = base + newUrl;
newArgs.push(newUrl);
}
if(newObj){
newObj.url = base + newObj.url;
newArgs.push(newObj);
}
oa.apply(window, newArgs); //call the real $.ajax method with the modified params
};
}
setBaseForAjax('/echo/'); //set the base for every ajax call in the application.
$.ajax({
url:'json/',
success: function(){
alert('in for json');
}
});
$.ajax(
'html/'
,{
success: function(){
alert('in for html');
}
}
);
$.ajax('html/', { //html wins over settings.
url:'json/',
success: function(){
alert('in for html');
}
});
$.get('json/', function(){
alert('in for json');
});
+0
哇,謝謝你的時間。我仔細閱讀了它,它似乎是一個更強大的解決方案。現在我必須決定... – Jumpa
相關問題
- 1. Laravel - 全球變更基地網址?
- 2. 獲取全球IP地址
- 3. AngularJs設置全球
- 4. C#udpclient/UDP套接字 - 全球地址
- 5. Python3檢查IP地址是否全球
- 6. 如何獲取全球IP地址?
- 7. GetAddrInfoW得到只有全球ipv6地址
- 8. 設置JS全球時區
- 9. 如何在drupal中設置基地址
- 10. Docker/Jupyter筆記本設置基地址
- 11. Uri工廠有全球基地嗎?
- 12. Symfony的2:設置參數全球基於請求
- 13. 更改基於全球化設置的web.config appsettings
- 14. 基地址,配置文件
- 15. 基於位置在地球上
- 16. 全球地圖disapear
- 17. 設置本地化/全球化的用戶語言
- 18. 如何安全地設置void *到特定地址C++
- 19. Sitecore全球網址到特定網址
- 20. 提供可設置的全球變量
- 21. 如何在全球設置javascript功能?
- 22. 全球Java陣列設置值爲0
- 23. 設置PDO連接全球的問題
- 24. 全球設置jquery移動到迷你
- 25. Rails - 處理全球網站設置
- 26. 設置一個全球性的要求
- 27. Oracle設置全球化支持環境
- 28. 設置默認GTK事件全球
- 29. 設置隔離級別全球
- 30. 如何設置全球RSpec元數據?
我將其存儲在一個全局變量。 – putvande