在脚本中调用时,MediaWiki原始api返回页面的旧版本
MediaWiki raw api returning old version of page when called in script
我正在为MediaWiki编写todo扩展。我有一个文本框,通过使用"原始"操作调用API,将新项目的html/css插入到返回的原始页面中,然后用更新的版本替换页面的wikitext,来接收该项目并将其附加到页面。如果我访问浏览器中的URL
http://url/wiki/index.php?title="+pagetoappend+"&action=raw
我得到了当前页面的正确原始wikitext。然而,当我在JavaScript中调用它时:
$.get("http://url/wiki/index.php?title="+pagetoappend+"&action=raw")
它返回一个旧版本的页面,该页面还没有附加任何项目。这意味着每次我运行脚本时,它都会删除前一项并替换它,而不是将它附加到我的列表中。
我的JS似乎没有问题,因为我正在控制台中将JS调用返回的wikitext打印到API,它正在检索页面的"旧"版本。我试着在不改变行为的情况下清除页面。
是否有返回的API调用缓存或需要清除的内容?还有其他建议吗?
因此,虽然我没有弄清楚自己做错了什么,但我使用了以下内容:
$.get("http://url.com/wiki/api.php?page="+pagetoappend+"&action=parse&prop=wikitext&format=json")
然后为wikitext 解析JSON文件
var data = jsondata.parse.wikitext["*"];
问题没有完全解决,但至少避免了。
MediaWiki中的内部缓存往往会在适当的时候失效;很可能你的浏览器会缓存响应。您可以通过附加一个缓存断路器参数(或使用相应的jQuery参数(来防止这种情况的发生。
如果要追加到页面(或模板(的末尾,则更简单的方法是使用editneneneba API的appendtext
参数。
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 在同一页面中使用两个版本的jquery将返回'未定义不是函数'
- 浏览器名称,版本值返回“Netscape”
- 所有版本的IE返回SCRIPT5007无法获取属性'长度'的未定义引用或null引用
- Phonegap获取应用版本返回null
- firebase web API版本2.X支持在写实时数据时返回set和update的承诺
- 如何修改数组中的对象,然后返回该数组的新版本
- Web2py在本地和在线版本上请求不同的行为(执行服务器代码,但返回404错误)
- IE - JavaScript返回错误的IE版本
- 在脚本中调用时,MediaWiki原始api返回页面的旧版本
- 在 ie9 及更低版本中使用历史记录.js页面刷新将返回到主页
- 服务器返回303,除非运行不安全版本的Chrome