2

我正在使用一项新服务的非常简单的 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>
4

3 回答 3

3

并非不涉及 Javascript 或服务器代码。“enc-type”属性指定表单数据发送到服务器的格式,不幸的是“xml-rpc”不在接受的格式列表中:)

于 2009-04-23T18:11:39.807 回答
2

不,这在纯 HTML 中是不可能的。提交表单数据的唯一标准编码application/x-www-form-urlencoded是和multipart/form-data

您可以使用 XMLHTTPRequest 从 JavaScript 执行此操作,但仅限于与 HTML 来自同一域的 API。在谷歌快速搜索后,我找到了这个 AJAX XML-RPC 客户端,虽然我从未使用过它,所以我不能保证它。

于 2009-04-23T18:12:55.543 回答
0

这可能取决于服务器是否实际执行 enctype

例如,使用此处显示的技术http://pentestmonkey.net/blog/csrf-xml-post-request您可以跨站点发布 XML POST 数据。

于 2010-07-20T15:28:45.660 回答