Tampermonkey и GET\POST запрос с выводом ответа
Необходимо кинуть запрос на php файл (GET или POST, без разницы) с переменной "sid=demo" и вывести ответ alert'ом.
Пример, который нашел здесь, почему-то у меня не работает. Код:
// ==UserScript==
// @id test
// @name Test
// @namespace test
// @match [url]http://en.wikipedia.org/*[/url]
// ==/UserScript==
var GM_xmlhttpRequest = function (params) {
var req = new XMLHttpRequest();
req.open(params.method, params.url);
for (var header in params.headers) {
req.setRequestHeader(header, params.headers[header]);
}
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {
params.onload(req);
}
};
req.send(params.data);
};
var query = {
method: "POST",
url: "https://en.wikipedia.org/w/api.php",
onload: function (res) {
alert(res.responseText);
},
};
query.data = "action=query&meta=siteinfo&format=json";
query.headers = {"Content-type": "application/x-www-form-urlencoded"};
GM_xmlhttpRequest(query);
|
Вот так работает:
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 <script>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) {
alert(res.responseText);
}
});
Но возвращает: Код:
<html> |
Возвращать только TESTCODE.
|
Так:
$.ajax(
{
url: 'http://wotbonuscode.tk/getcode.php',
type: 'GET',
dataType: 'html',
success: function(res)
{
alert(res.responseText);
}
});
Или так:
$.get( "http://wotbonuscode.tk/getcode.php", function( data ) {
alert( "data );
});
Запрос отправляется, а ответ не выводит. |
Цитата:
Запрос отправляется с того же домена, где и лежит php скрипт? |
кроссдоменные запросы режутся броузером, если сервер не говорит что можно.
|
| Часовой пояс GMT +3, время: 10:16. |