我正在玩一个新服务的非常简单的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>msg@mycompany.com</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>
答案 0 :(得分:3)
不涉及Javascript或服务器代码。 “enc-type”属性指定表单数据发送到服务器的格式,不幸的是“xml-rpc”不在可接受格式的列表中:)
答案 1 :(得分:2)
不,这不可能来自纯HTML。提交表单数据的唯一standard encodings是application/x-www-form-urlencoded
和multipart/form-data
。
您可以使用XMLHTTPRequest从JavaScript执行此操作,但只能使用与HTML相同的域上的API。快速谷歌搜索后,我找到this AJAX XML-RPC client,虽然我从未使用它,所以我不能保证它。
答案 2 :(得分:0)
这可能取决于服务器是否实际执行了enctype
例如,使用此处显示的技术http://pentestmonkey.net/blog/csrf-xml-post-request,您可以执行XML POST数据的跨站点帖子。