2009-04-23 1 views
1

Я играю с очень простым API-интерфейсом новой службы, и мне просто интересно узнать, можно ли отправить запрос xml-rpc непосредственно из html-формы. Пример запроса апи заключается в следующем:Можно ли запросить XML-RPC из html-формы?

<?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> 

ответ

3

Не без участия либо Javascript или код сервера. Атрибут «enc-type» указывает формат, который данные формы отправляются на сервер, и, к сожалению, «xml-rpc» не входит в список принятых форматов :)

+0

Так что я также предполагаю, что, поскольку это будет междоменной, использование XHR не будет работать. Вернуться на сервер! – Geuis

+0

Вы имеете в виду атрибут «enctype», верно? –

+0

@Patrick: Ой, ты прав. –

2

Нет, это невозможно из простой HTML. Единственными standard encodings для представления данных формы являются application/x-www-form-urlencoded и multipart/form-data.

Вы можете сделать это из JavaScript с помощью XMLHTTPRequest, но только для API-интерфейсов в том же домене, из которого пришел HTML. После быстрого поиска Google я нашел this AJAX XML-RPC client, хотя я никогда не использовал его, поэтому я не могу ручаться за него.

0

Это может зависеть, если сервер на самом деле обеспечение соблюдения ENCTYPE

Например, используя технику, показанную здесь http://pentestmonkey.net/blog/csrf-xml-post-request вы можете сделать сообщения межсайтовых данных POST XML.