您的位置:首页 > Web前端 > JavaScript

TamperMonkey脚本跨域请求与JSONP

2018-01-10 11:12 393 查看
由于浏览器同源策略的原因,在网站A内无法向网站B发送请求,当然解决办法也有很多,一般需要服务器配合才行。

在油猴脚本中可以使用GM_xmlhttpRequest发送请求,它可以跨域访问。

// @grant GM_xmlhttpRequest

GM_xmlhttpRequest({
method: 'GET',
url: `http://httpbin.org/get`,
onload: response => {
console.log(response);
}
});

另外,如果服务器支持JSONP输出,那么可以在onload中用eval执行回调

GM_xmlhttpRequest({
method: 'GET',
url: 'http://www.xxx.com/api?callback=foo',
onload: response => {
if (response.status == 200) {
eval(response.responseText);
}
}
});

回调函数需要挂在window下面,而油猴脚本访问window则需要引入unsafeWindow

// @grant        unsafeWindow


unsafeWindow.foo= () => {
console.log('hello world');
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  TamperMonkey