我有一个JQGrid和搜索过滤器以及loadOnce=false
。我在网格中搜索记录,我能够在firebug中看到这个json GET类型。
http://localhost:8080/myapp/items/listGrid?ticketId=&_search=true&nd=1393573713370&rows=20&page=1&sidx=id&sord=asc&filters=%7B%22groupOp%22%3A%22AND%22%2C%22rules%22%3A%5B%7B%22field%22%3A%22summary%22%2C%22op%22%3A%22cn%22%2C%22data%22%3A%22Test%22%7D%5D%7D
我希望在此请求完成后获取此JSON请求URL我必须在我的pdf链接中添加相同的参数。
我试试
document.URL
window.location.pathname
jQuery("#itemsGrid").jqGrid('getGridParam', 'url');
输出
"localhost:8080/myapp/items/list"
"/myapp/items/list"
"/myapp/items/listGrid?ticketId="
如何获取相同的网址?
答案 0 :(得分:0)
如果是ajax调用,你可以装饰XMLHttpRequest.prototype.open
函数:
var calls = [];
XMLHttpRequest.prototype._originalOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
if(method === 'GET') // Only add GET requests
calls.push(url);
this._originalOpen(method, url, async, user, password);
}
现在您可以按如下方式访问最后一个获取网址
var lastUrl = calls[calls.length - 1]
从this SO问题采用此代码。
答案 1 :(得分:0)
如果您需要追加带有其他参数的网址,则应使用jqGrid的postData
参数。我建议将参数定义为函数(如the answer)。如果您需要发送用户凭据信息,那么最好将其放在自定义HTTP标头中,而不是每个人都可以看到的URL。在这种情况下,loadBeforeSend
回调的使用将是最佳选择。有关代码示例,请参阅the answer和this one。您还有一个选项是在使用之前使用beforeRequest
回调直接修改jqGrid的url
参数(请参阅the answer)
也建议在最终解决方案中使用https:
代替http:
。