有沒有方法可以更改由JavaScript引起的請求的查詢字符串?我想爲我的HTML/JS應用程序發送的任何請求添加「& myParam = myValue」。更改JavaScript請求的查詢字符串參數
回答
我不認爲有任何內置的東西可以讓你這樣做。
在我的應用程序中,我總是有一箇中心函數XHR經歷,所以我有一個單點來做這樣的事情。如果你沒有這樣的或需要從第三方庫攔截來電:
您可以包XMLHttpRequest.open
處理XHR的:
var originalOpen = XMLHttpRequest.open;
XMLHttpRequest.open = function() {
var args = Array.prototype.slice.call(arguments);
args[0] += (args[0].indexOf("?") == -1 ? "?" : "&") + "myParam=" + encodeURIComponent("myValue");
return originalOpen.apply(this, args);
};
...然後類似的fetch
。但看起來很脆弱。
或者,您可能會考慮使用cookie作爲參數,因爲瀏覽器會將cookie添加到請求中。 (假設請求將發送到您可以在代碼中添加Cookie的請求)。
您的解決方案適用於我的頁面。你知道偶然嗎,如果有一種方法可以從包含的IFRAME中打包XMLHttpRequest?它看起來像同源政策阻止我這樣做 - 有沒有辦法解決它? –
@ D.R .:如果iframe由不同來源提供,則SOP的確會阻止您的腳本訪問其JavaScript環境。所以你不能在其中包裝'XMLHttpRequest.open'。 –
好的,太糟糕了...沒有解決方法。仍接受你的答案,因爲它回答了發佈的問題。 –
在我看來,您在問如何在http請求中設置/編輯URL參數。這裏有一些非常相似的東西:here
如果您使用的是XMLHttpRequest,那麼鏈接中接受的答案應該完美。注意兩個關鍵的東西
- url參數只是一個JavaScript對象,您可以將 轉換爲JSON字符串。這發生在JSON.stringify({myParam: 'hi'});
- 的問題/答案鏈接正在POST請求,但你 可能不想讓這一請求,以及,我建議做哪些HTTP請求方法你想一些 研究 - https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
你可以使用部分應用程序在聲明提取函數時鎖定默認值,並實質上修飾將合併您的默認值和傳遞的參數的標準調用。
const fetchFactory = defaults => (url, data) => {
// make a copy of the defaults
const params = Object.assign({}, defaults)
// assign the passed in data with the defaults
params.body = JSON.stringify(Object.assign(params.body, data))
// call fetch with the params
return fetch(url, params)
}
// create a default for POST using the factory
const postFetch = fetchFactory({
method: 'post',
headers: {
'x-requested-with': 'fetch',
'Authorization': 'basic:' + btoa('a secret')
},
body: {
myParam: 'value'
}
})
// now you can call your function
postFetch('http://somewhere.com', {
one: 1,
two: 2
})
.then(respone => response.json())
- 1. 更改查詢字符串參數
- 2. 字符串參數請求
- 3. ASP.net MVC檢查查詢字符串參數對所有請求
- 4. Javascript更改查詢字符串刷新
- 5. 發送的請求體參數而不是查詢字符串
- 6. AFNetworking:追加參數作爲PUT請求的查詢字符串
- 7. node.js使用查詢字符串參數的http'get'請求
- 8. Django:將POST請求參數轉換爲查詢字符串
- 9. TRESTRequest:如何查詢字符串參數添加到PUT請求
- 10. 查詢字符串參數正在請求丟失
- 11. commons httpclient - 向GET/POST請求添加查詢字符串參數
- 12. 與查詢字符串後請求參數
- 13. 改變查詢字符串參數/值
- 14. 查詢字符串參數和篡改
- 15. Javascript - 如何從Url.Action鏈接「請求查詢字符串」來檢索參數值?
- 16. Ajax請求使用查詢字符串
- 17. Mojolicious websocket請求查詢字符串
- 18. 獲取請求MVC查詢字符串
- 19. GuzzlePHP請求查詢字符串
- 20. 從查詢字符串拆分請求
- 21. 查詢字符串htaccess塊請求
- 22. Node.js beginner-請求無查詢字符串
- 23. SQL - 查詢字符串請求
- 24. 如果找不到查詢字符串,請修改javascript函數
- 25. 參數中的SSRS字符串更改查詢
- 26. javascript/jquery修改查詢字符串參數
- 27. IIS URL重定向更改查詢字符串參數名稱
- 28. 如何根據查詢字符串參數更改CSS類
- 29. 角正在更改查詢字符串參數
- 30. 通過查詢字符串參數更改會話變量
通過 「JavaScript的誘導,」 你的意思'XMLHttpRequest'和'fetch'等? –