- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个脚本 (js) 来在我的 mediawiki 中导入一个页面。我有一个“不正确的 token ”。怎么了?
var xhttp = new ActiveXObject("Microsoft.XmlHttp");
xmlHttp2.open("POST", url, false);
xmlHttp2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp2.send("action=query&prop=info&intoken=import&titles=Test2");
var result2 = xmlHttp2.responseText;
var resultTokenImport = extractTokenImport(result2);
//return me 'dsa7u6ds6u7asd76das67sad+\' ( more or less :D )
xmlHttp2.open("POST", url, false);
xmlHttp2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp2.send("action=import&format=xml&xml="+dump+"&token="+resultTokenImport);
嗯,问题是“导入”需要“另一种”类型的 token 。
现在,我的问题是:
xmlHttp2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
给我一个错误“nofile”
对于这段代码:
xmlHttp2.setRequestHeader("Content-Type", "multipart/form-data");
它发给我:
第 0 行 Unknown 中的 multipart/form-data POST 数据中缺少边界
最佳答案
如果它说“无文件”,则它期望在 POST 正文中有一个文件。您可以使用 FormData 轻松发布.
引用自/api.php
xml - Uploaded XML file Must be posted as a file upload using multipart/form-data
Here is what is working for me. For simplicity, the following code is reading from a textarea and makes use of MediaWiki's JavaScript includes:
var apiUrl = mw.util.wikiScript( 'api' );
var onreadystatechange = function() {
if ( 4 !== this.readyState ) return;
if ( 200 === this.status ) {
console.log( this.response );
}
};
function continueWithToken ( token ) {
var fd = new FormData();
var xhr = new XMLHttpRequest();
// First argument is an array!
var bXml = new Blob( [$( 'textarea' ).val()], {
type: 'text/xml'
} );
fd.append( 'format', 'json' );
fd.append( 'action', 'import' );
// Third parameter is not required but
// You're likely on the safe side using it
fd.append( 'xml', bXml, 'file.xml' );
fd.append( 'token', token );
xhr.onreadystatechange = onreadystatechange;
xhr.open( 'POST', apiUrl );
xhr.send( fd );
}
$.get( apiUrl, {
format: 'json',
type: 'import',
action: 'tokens'
} ).done( function(r) {
var token = r.tokens.importtoken;
continueWithToken( token );
} );
这只是一个最小的实现。不要忘记错误处理。如果您将导出文件作为文件上传,并想让它在不充分支持 Blob 和 FormData 的旧浏览器中工作,只需构建一个表单!表单的目标可以是 iframe,因此您可以从中读取响应,而无需向用户公开空白的 API 结果页面。
{"import":[{"ns":0,"title":"Main Page2","revisions":1}]}
由客户端组成并发送给服务器以供引用的请求。请注意该文件位于 POST 正文中。
POST http://localhost/api.php HTTP/1.1
Host: localhost
User-Agent: <ua string>
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost/index.php?title=Special:Export&action=submit
Content-Length: 3231
Content-Type: multipart/form-data; boundary=---------------------768648126486
Cookie: <redacted>; mwdbUserID=1; mwdbUserName=Rillke
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
-----------------------768648126486
Content-Disposition: form-data; name="format"
json
-----------------------768648126486
Content-Disposition: form-data; name="action"
import
-----------------------768648126486
Content-Disposition: form-data; name="xml"; filename="file.xml"
Content-Type: text/xml
<mediawiki ...schemas... version="0.8" xml:lang="en">
<siteinfo>
<sitename>Sample Wiki</sitename>
<!-- .... -->
</mediawiki>
-----------------------768648126486
Content-Disposition: form-data; name="token"
XX39e9fd22a9de7675c71eadcfd2XXXX+\
-----------------------768648126486--
至于“Missing boundary in multipart/form-data POST data”错误,这是因为您发送它是经过 url 编码的,但声称它是 multipart/form-data . MediaWiki 正在标题中寻找边界,但找不到。
关于javascript - 在 Mediawiki 中导入页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20500895/
我有很多文本文件要上传到运行 MediaWiki 的 wiki。 我什至不知道这是否真的可能,但我想试一试。 每个文本文件的名称将是 wiki 页面的标题。 一个 wiki 页面对应一个文件。 我想从
是否可以使用 SyntaxHighlight GeSHi 在 MediaWiki 中缩进一段代码? ? 比如我希望下面的代码容器与三级列表对齐 * This is plain text of a fi
是否可以在 MediaWiki 中定义可缩进和可折叠的文本或代码块(例如,使用语法高亮格氏格式化)? 我在 Wikipedia 中看到了可折叠的表格和列表,并希望将相同的概念应用于段落和代码片段。 谢
mediawiki 数据库中的哪个表保存页面内容?我想直接访问 mediawiki 的数据库。 最佳答案 您可以查看database layout媒体维基。页面内容位于表格text (在 Postgr
在 MediaWiki 中,您可以使用变量(“Magic Word”),例如 {{PAGENAME}} 或 {{REVISIONDAY}} 获取与当前正在查看的页面相关的特定信息。是否有类似的变量(或
我正在尝试在 wiki 页面上放置一个对象列表,供多个团队标记他们使用的对象。为此,我为每个团队制作了一个带有一列的表格,并希望在这些列中放置一个复选框,以便团队进行标记。 这是我要做的事情的基本思想
有没有MediaWIki我可以在其中提交整个(可能非常大)mediawiki 文本(用于维基百科文章)的 API,这将给我提供与在 wikipedia 上查看的 HTML 文章完全相同的 HTML对于
有没有MediaWIki我可以在其中提交整个(可能非常大)mediawiki 文本(用于维基百科文章)的 API,这将给我提供与在 wikipedia 上查看的 HTML 文章完全相同的 HTML对于
我正在寻找一种方法来防止所有用户在 Mediawiki 中更改他们的密码(因为帐户创建和密码更改由中央 SSO 服务器处理)。 据我所知,Mediawiki 用户可以通过两种方式更改密码:使用登录页面
背景: 我与一个大型协作机构合作,该机构将大量文档集中在一个 wiki 结构中。我已经熟悉 wiki 标记,并且可以创建带有链接等的简单页面。 我合作的 wiki(基于 mediawiki 架构)的一
我正在运行一个 MediaWiki 实例,在撰写本文时我刚刚将其升级到最新版本 1.32.0。这个 wiki 已有近 10 年的历史,并且经历了多次升级。 这是一个法语维基,对于说法语的人来说,令人讨
通过访问 sysop 和数据库访问,我如何更改与用户关联的电子邮件地址? 数据库中的用户表将所有内容都编码为 BLOB。如果我可以解码和编码这些值,大概我可以更新 user.user_email。 最
MediaWiki 支持的侧边栏的默认左侧边栏包含诸如“随机页面”和“当前事件”之类的链接。我想隐藏这些。 除了使用 CSS ( display:none; ) 之外,还有其他方法可以做到这一点吗?
如何设置才能让 MediaWiki 不允许一个电子邮件地址创建多个帐户?垃圾邮件机器人仅使用一封电子邮件创建了 5 个帐户。 我一直在寻找配置设置或扩展,但没能找到。 与此相关的一个问题是使用类似于
我有一个包含不同类型类别的 mediawiki。 如果一个页面有 2 个类别 [[Category:Pear]][[Category:Strawberry]]) 我想添加第三个类别 [[Categor
我们的网络上有自定义协议(protocol),可以在我们的应用程序中打开窗口。我们想在我们的 Wiki 中放置此应用程序的链接,但 mediawiki 似乎唯一识别的协议(protocol)是 htt
我想在 mediawiki 中找到图像的确切 URL 以发送到我的 pinterest 代码中。要查找页面 URL,我使用 urlencode($wgTitle->getFullURL()) 但我无法
我不太确定这在 MediaWiki 中是否可行。 我有几个类别,每个类别包含几页。如果您打开一个类别页面,您将看到该类别的内容,通常由以下三个部分组成: 用户定义的文本(可以使用编辑链接进行编辑)。
我开发了一个应用程序,它在 mediawiki 站点上有一个手册/帮助系统。当用户在应用程序中需要帮助时,他/她可以点击一个按钮,访问维基上相应的帮助页面。这工作得很好,当我在应用程序中添加/更改功能
我刚刚安装了 Mediawiki 并意识到为新手配置它非常复杂。 作为我的第一个条目,我想更改字体颜色: {{ font color | green | green text }} 为此,我从 Wik
我是一名优秀的程序员,十分优秀!