可以从 html 表单发出 XML-RPC 请求吗?
我正在使用一个新服务的非常简单的 API,我只是好奇是否可以直接从 html 表单发送 xml-rpc 请求。 api 请求示例是这样的:
<?xml version="1.0"?>
<methodCall>
<methodName>send</methodName>
<params>
<param><value><string>YOUR_API_KEY</string></value></param>
<param><value><string>[email protected]</string></value></param>
<param><value><string>5551231234</string></value></param>
<param><value><string>Test Message from PENNY SMS</string></value></param>
</params>
</methodCall>
我当前的表单迭代是这样的:
<form method="POST" enctype="text/xml" action="http://api.pennysms.com/xmlrpc">
<input type="hidden" name="api_key" value="MYAPIKEY"/>
<label for="from">From</label>
<input type="input" name="from" value=""/>
<label for="phone">Phone</label>
<input type="input" name="phone" value=""/>
<label for="text">Text message</label>
<input type="input" name="text" value="">
<input type="submit" value="Send"/>
</form>
I'm playing with a new service's very simple API and I'm just curious if its possible to send an xml-rpc request directly from an html form. The api request example is this:
<?xml version="1.0"?>
<methodCall>
<methodName>send</methodName>
<params>
<param><value><string>YOUR_API_KEY</string></value></param>
<param><value><string>[email protected]</string></value></param>
<param><value><string>5551231234</string></value></param>
<param><value><string>Test Message from PENNY SMS</string></value></param>
</params>
</methodCall>
And my current form iteration is this:
<form method="POST" enctype="text/xml" action="http://api.pennysms.com/xmlrpc">
<input type="hidden" name="api_key" value="MYAPIKEY"/>
<label for="from">From</label>
<input type="input" name="from" value=""/>
<label for="phone">Phone</label>
<input type="input" name="phone" value=""/>
<label for="text">Text message</label>
<input type="input" name="text" value="">
<input type="submit" value="Send"/>
</form>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这可能取决于服务器是否实际上强制执行 enctype
例如,使用此处所示的技术 http: //pentestmonkey.net/blog/csrf-xml-post-request 您可以跨站点发布 XML POST 数据。
That might depend if the server is actually enforcing the enctype
For example using the technique shown here http://pentestmonkey.net/blog/csrf-xml-post-request you can do cross-site posts of XML POST data.
并非不涉及 Javascript 或服务器代码。 “enc-type”属性指定表单数据发送到服务器的格式,不幸的是“xml-rpc”不在可接受的格式列表中:)
Not without involving either Javascript or server code. The "enc-type" attribute specifies the format that the form data is sent to the server in, and unfortunately "xml-rpc" isn't in the list of accepted formats :)
不,这在纯 HTML 中是不可能的。 用于提交表单数据的唯一标准编码是
application/x-www-form-urlencoded
和multipart/form-data
。您可以使用 XMLHTTPRequest 从 JavaScript 执行此操作,但仅限于与 HTML 来源相同的域中的 API。 经过 Google 快速搜索后,我发现了这个 AJAX XML-RPC 客户端我从未使用过它,所以我不能保证它。
No, this is not possible from plain HTML. The only standard encodings for submitting form data are
application/x-www-form-urlencoded
andmultipart/form-data
.You can do this from JavaScript using an XMLHTTPRequest, though only to APIs on the same domain that the HTML came from. After a quick Google search, I found this AJAX XML-RPC client, though I've never used it so I can't vouch for it.