[JavaScript] Tampermonkey и GET\POST запрос с выводом ответа - Вопросы и ответы, обсуждения - Ваши вопросы по Web-программированию только в данном разделе
10.04.2014, 21:13
#1
Пехотинец
Регистрация: 27.11.2010
Сообщений: 84
Популярность: -1831
Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
[JavaScript] Tampermonkey и GET\POST запрос с выводом ответа
Необходимо кинуть запрос на php файл (GET или POST, без разницы) с переменной "sid=demo" и вывести ответ alert'ом.
Пример, который нашел [
Ссылки могут видеть только зарегистрированные пользователи. ], почему-то у меня не работает.
В коде "alеrt(" заменилась "*******". Здесь я написал ее через русскую букву "e". Баг форума, не хорошо.
10.04.2014, 23:49
#2
Сержант
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
Re: [JavaScript] Tampermonkey и GET\POST запрос с выводом ответа
Я так понимаю нужно выполнить кроссдоменный запрос, если так то спешу вас огорчить, такие запросы запрещены политикой безопасности самих браузеров. Существует пара уловок, попробуйте задать поле document.domain нужного вам сайта или гуглите JSONP cross domain request
________________
Talk is cheap. Show me the code
— Linus Torvalds
Пользователь сказал cпасибо:
12.04.2014, 19:07
#3
Пехотинец
Регистрация: 27.11.2010
Сообщений: 84
Популярность: -1831
Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
Re: [JavaScript] Tampermonkey и GET\POST запрос с выводом ответа
Вот так работает:
Код:
jQuery.ajax = (function(_ajax) {
var protocol = location.protocol,
hostname = location.hostname,
exRegex = RegExp(protocol + '//' + hostname),
YQL = 'http' + (/^https/.test(protocol) ? 's' : '') + '://query.yahooapis.com/v1/public/yql?callback=?',
query = 'select * from html where url="{URL}" and xpath="*"';
function isExternal(url) {
return !exRegex.test(url) && /:\/\//.test(url);
}
return function(o) {
var url = o.url;
if (/get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url)) {
// Manipulate options so that JSONP-x request is made to YQL
o.url = YQL;
o.dataType = 'json';
o.data = {
q: query.replace(
'{URL}',
url + (o.data ?
(/\?/.test(url) ? '&' : '?') + jQuery.param(o.data) : '')
),
format: 'xml'
};
// Since it's a JSONP request
// complete === success
if (!o.success && o.complete) {
o.success = o.complete;
delete o.complete;
}
o.success = (function(_success) {
return function(data) {
if (_success) {
// Fake XHR callback.
_success.call(this, {
responseText: data.results[0]
// YQL screws with **********s
// Get rid of them
.replace(/<script[^>]+?\/>|<script(.|\s)*?\/script>/gi, '')
}, 'success');
}
};
})(o.success);
}
return _ajax.apply(this, arguments);
};
})(jQuery.ajax);
$.ajax({
url: 'http://wotbonuscode.tk/getcode.php',
type: 'GET',
success: function(res) {
*******res.responseText);
}
});
Но возвращает:
Код:
<html>
<head>
<meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org" name="generator"/>
<title/>
</head>
<body>
<p>TESTCODE</p>
</body>
</html>
А мне нужно просто "TESTCODE", как это сделать?
12.04.2014, 20:25
#4
Сержант
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
Re: [JavaScript] Tampermonkey и GET\POST запрос с выводом ответа
Ну так делай правильный запрос
Код:
'select * from html where url="{URL}" and xpath="//body/p "'
указывай нужный элемент
________________
Talk is cheap. Show me the code
— Linus Torvalds
Пользователь сказал cпасибо:
12.04.2014, 20:46
#5
Пехотинец
Регистрация: 27.11.2010
Сообщений: 84
Популярность: -1831
Сказал(а) спасибо: 249
Поблагодарили 57 раз(а) в 27 сообщениях
Re: [JavaScript] Tampermonkey и GET\POST запрос с выводом ответа
Yukikaze , респект тебе!
Но есть еще один вопрос, можно ли обойтись без такого сложного запроса, а на прямую послать запрос на php и получить ответ.
Пробовал так:
Код:
$.ajax(
{
url: 'http://wotbonuscode.tk/getcode.php',
type: 'GET',
dataType: 'html',
success: function(res)
{
*******res.responseText);
}
});
И так:
Код:
$.get( "http://wotbonuscode.tk/getcode.php", function( data ) {
******* "data );
});
Запрос уходит (смотрел через Charles), но ответа нет.
В коде "alеrt(" заменилась "*******". Здесь я написал ее через русскую букву "e". Баг форума, не хорошо.
Последний раз редактировалось XRASER; 12.04.2014 в 20:49 .
12.04.2014, 22:17
#6
Сержант
Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
Re: [JavaScript] Tampermonkey и GET\POST запрос с выводом ответа
Читай первый мой ответ, одной копипастой здесь не отделаешься
________________
Talk is cheap. Show me the code
— Linus Torvalds
Пользователь сказал cпасибо:
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 23:50 .