可以从 html 表单发出 XML-RPC 请求吗?

发布于 2024-07-17 10:05:50 字数 1453 浏览 1 评论 0原文

我正在使用一个新服务的非常简单的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

以歌曲疗慰 2024-07-24 10:05:51

这可能取决于服务器是否实际上强制执行 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.

吾性傲以野 2024-07-24 10:05:50

并非不涉及 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 :)

青丝拂面 2024-07-24 10:05:50

不,这在纯 HTML 中是不可能的。 用于提交表单数据的唯一标准编码application/x-www-form-urlencodedmultipart/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 and multipart/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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文