<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; POST запросы.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6795&amp;type=atom" />
	<updated>2012-07-03T17:33:46Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6795</id>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61351#p61351" />
			<content type="html"><![CDATA[<p>В общем кое-как разобрался : Если нужно отсылать данные в UTF-8 то подходит ф-ция encodeURIComponent() , а мне нужно было из СP1251 получить Urlencoded. Может кому еще пригодится в будующем : </p><div class="codebox"><pre><code>var trans=[];
var snart=[];
for(var i=0x410;i&lt;=0x44F;i++)
{
trans[i]=i-0x350;
snart[i-0x350] = i;
}
trans[0x401]= 0xA8;
trans[0x451]= 0xB8;
snart[0xA8] = 0x401;
snart[0xB8] = 0x451;
CP1251urlencode = function(str)
{
var ret=[];
for(var i=0;i&lt;str.length;i++)
{
var n=str.charCodeAt(i);
if(typeof trans[n]!=&#039;undefined&#039;)
n = trans[n];
if (n &lt;= 0xFF)
ret.push(n);
}

return escape(String.fromCharCode.apply(null,ret));
}</code></pre></div><p>У хромого как оказалось для пользовательских скриптов XMLHttpRequest() поддерживает кроссдоменные запросы поэтому что бы код не особо менять сделал аналогичную функцию :</p><br /><div class="codebox"><pre><code>GM_xmlhttpRequest = function(params) {
  var request = new XMLHttpRequest()
  
  request.onreadystatechange = function() {
    if (params.onreadystatechange) params.onreadystatechange(request)
    if (request.readyState == 4) {
      if (request.status &gt;= 200 &amp;&amp; request.status &lt; 400) if (params.onload) params.onload(request)
      else if (params.onerror) params.onerror(request)
    }
  }
  
  request.open(params.method, params.url, true)
  if (params.headers) for (name in params.headers)
    request.setRequestHeader(name, params.headers[name])
  
  request.send(params.data)
  return request

}</code></pre></div><p>В общем теперь в FF все отлично а в хроме застрял с парсингом ответа , я в этих делах только начинаю разбираться поэтому прошу помощи , подскажите чем проще воспользоваться ? <img src="//forum.script-coding.com/img/smilies/hmm.png" width="15" height="15" /></p><p>в FF реализовал аналогичное так : </p><div class="codebox"><pre><code>var parser = new DOMParser();
var doc = parser.parseFromString(response.responseText,&#039;text/html&#039;);</code></pre></div><p>А в хроме так не получилось <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[besik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28239</uri>
			</author>
			<updated>2012-07-03T17:33:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61351#p61351</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=61316#p61316" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>overrideMimeType  (&quot;text/html;charset=windows-1251&quot;);</code></pre></div><p>Спасает и меня.<br /> Но я столкнулся с проблемкой что параметры на русском языке некорректно передаются ...&nbsp; Я понимаю что передавать надо так :<br /> </p><div class="codebox"><pre><code> &quot;param=&quot;+encodeURIComponent(parametr)</code></pre></div><p>Но когда смотрю когда не мой скрипт отправляет пост запрос , а на том сайте то в пост запросе кодируется к примеру не &quot;привет&quot; а сначала во что то перекодируется (&quot;привет&quot; выглядит как &quot;&amp;#239;&amp;#240;&amp;#232;&amp;#226;&amp;#229;&amp;#242;&quot; ) и потом эти каракули в UTF-8 преобразуются и отсылаються нормально.<br />Так вот если я кодирую encodeURIComponent и посылаю привет - то мне фигушки, а если каракули таким же образом отправлять то все отличненько. Вопрос как мне привести русские&nbsp; слова вот к таким каракулям что бы мой скриптик и русские слова отрабатывал нормально ? <img src="//forum.script-coding.com/img/smilies/roll.png" width="15" height="15" /></p><p>Пишется для greasemonkey+firefox.<br /> POST запрос отсылаю через GM_xmlhttpRequest , так как нужно послать кроссдоменный запрос. Второй вопрос: для хромого если переделывать скрипт то чем можно воспользоваться вместо GM_xmlhttpRequest, что бы не доставлять еще чего то из дополнений.</p>]]></content>
			<author>
				<name><![CDATA[besik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28239</uri>
			</author>
			<updated>2012-07-01T11:22:29Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=61316#p61316</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56633#p56633" />
			<content type="html"><![CDATA[<p>Как оказалось, при отправке заголовка (&quot;Content-type&quot;, &quot;application\/x-www-form-urlencoded&quot;), запрос всегда отправляется в UTF-8, поэтому отправлять charset=windows-1251, бессмысленно. И ответ собственно приходить тоже в UTF-8.<br />Спасает <em>overrideMimeType&nbsp; (&quot;text/html;charset=windows-1251&quot;);</em> (Gecko only), который как раз и получает ответ в заданной кодировке.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-02-10T07:15:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56633#p56633</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56632#p56632" />
			<content type="html"><![CDATA[<p>Поздно ответил. Пока вспоминал написание заголовка, задающего кодировки, приемлемые в отклике сервера, Вы уже сами нашли решение. Я имел в виду отправку на сервер этой строки в качестве дополнительного заголовка.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2012-02-10T07:04:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56632#p56632</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56631#p56631" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rumata пишет:</cite><blockquote><p>Accept-Charset: windows-1251. Нет?</p></blockquote></div><p>Это вы о чем?</p><p>ps. Пишу бывшему однокласснику сриптик для он-лайн игры.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-02-10T06:40:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56631#p56631</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56630#p56630" />
			<content type="html"><![CDATA[<p>Accept-Charset: windows-1251. Нет?</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2012-02-10T06:19:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56630#p56630</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56628#p56628" />
			<content type="html"><![CDATA[<p>Всем спасибо.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-02-10T06:04:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56628#p56628</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56627#p56627" />
			<content type="html"><![CDATA[<p>Ура, получилось. Не знаю правда почему и как.</p><p>xmlhttp.setRequestHeader	(&quot;Content-type&quot;, &quot;application\/x-www-form-urlencoded&quot;);<br />xmlhttp.overrideMimeType	(&quot;text/html;charset=windows-1251&quot;);</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-02-10T06:03:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56627#p56627</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56624#p56624" />
			<content type="html"><![CDATA[<p>О!<br />Если заменить строку<br />xmlhttp.setRequestHeader(&quot;Content-Type&quot;, &quot;text/plain; charset=windows-1251&quot;);<br />на<br />xmlhttp.setRequestHeader(&quot;Content-type&quot;, &quot;application/x-www-form-urlencoded; charset=windows-1251&quot;);</p><p>то параметры все-таки передаются - xmlhttp.send(params) отрабатывает. Но <em>&quot;charset=windows-1251&quot;</em>, все равно игнорируется.</p><p>И страница возвращается с абракадаброй.</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-02-10T05:03:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56624#p56624</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[POST запросы.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=56623#p56623" />
			<content type="html"><![CDATA[<p>Доброго дня.</p><p>Думаю что всю простыню не обязательно тут выкладывать. Кусок кода не пашет. Помогите. Пишется для greasemonkey+firefox, кроссбраузерность не нужна. Про встроенные методы с запросами в Грисманки знаю. Хочется знать почему так не пашет.<br /></p><div class="codebox"><pre><code>lPage = &#039;url&#039;;
lParam = &#039;pfram&#039;;
function SendRequestPOST(){
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open(&quot;POST&quot;,lPage,true);
    xmlhttp.onreadystatechange = processRequestChange;
    params = &#039;id=&#039; + encodeURIComponent(lParam)
    xmlhttp.setRequestHeader(&quot;Content-Type&quot;, &quot;text/plain; charset=windows-1251&quot;);
    xmlhttp.send(params);
    pole.innerHTML = &quot;Обновление информации ...&quot;;
}

function processRequestChange(){
    if (xmlhttp.readyState == 4){
        if (xmlhttp.status == 200){
            pole.innerHTML = &quot;Обновление успешно.&quot;;
        };
    };
}</code></pre></div><p>При формировании запроса, не передаются заголовок (&quot;Content-Type&quot;, &quot;text/plain; charset=windows-1251&quot;) и параметр (xmlhttp.send(params)</p><p>wtf?</p>]]></content>
			<author>
				<name><![CDATA[DnsIs]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26282</uri>
			</author>
			<updated>2012-02-10T04:54:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=56623#p56623</id>
		</entry>
</feed>
