有没有方法可以更改由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. 发送的请求体参数而不是查询字符串
- 5. AFNetworking:追加参数作为PUT请求的查询字符串
- 6. commons httpclient - 向GET/POST请求添加查询字符串参数
- 7. Django:将POST请求参数转换为查询字符串
- 8. TRESTRequest:如何查询字符串参数添加到PUT请求
- 9. 查询字符串参数和篡改
- 10. Javascript - 如何从Url.Action链接“请求查询字符串”来检索参数值?
- 11. GuzzlePHP请求查询字符串
- 12. 获取请求MVC查询字符串
- 13. SQL - 查询字符串请求
- 14. IIS URL重定向更改查询字符串参数名称
- 15. 通过查询字符串参数更改会话变量
- 16. HTTPPOST请求与字符串参数
- 17. SQL查询请求参数
- 18. 的.htaccess更改查询字符串
- 19. 更改Django中的查询字符串?
- 20. 作为'referrer'发送没有查询字符串参数的AJAX请求
- 21. 约定的查询字符串参数
- 22. 变化的查询字符串参数
- 23. c#如何请求URL参数并更改字符
- 24. Spring MVC能严格映射查询字符串来请求参数吗?
- 25. 可通过HTTP请求访问WCF,查询字符串作为参数
- 26. Ajax请求GET查询字符串参数不能动态配置
- 27. 更改数组中的字符串 - Javascript
- 28. 由于请求参数,我可以更改web.config连接字符串吗?
- 29. URL请求添加POST数据到查询字符串
- 30. PHP数据库表查询帮助请求 - 字符串变量
通过 “JavaScript的诱导,” 你的意思'XMLHttpRequest'和'fetch'等? –