nec*_*cer 3 jquery greasemonkey xmlhttprequest tampermonkey
我想在我的Tampermonkey脚本中做一些AJAX操作,我发现jQuery相当方便.目前仍然没有办法让jQuery AJAX与Tampermonkey一起工作吗?
请注意,操作不会是相同的来源,这是使用Tampermonkey的全部原因.Greasemonkey也行.
jQuery AJAX与Tampermonkey和Greasemonkey一起工作正常,与网页中jQuery的使用相比只有一个限制.
例如,这个跨源脚本适用于Tampermonkey和Greasemonkey:
// ==UserScript==
// @name _Demonstrate jQuery AJAX from Tampermonkey
// @include https://stackoverflow.com/questions/18546180/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
$.ajax ( {
type: 'GET',
url: 'https://api.stackexchange.com/2.1/users/621338?site=stackoverflow&filter=!)2R0ltXnW6.fyPDiHJm',
dataType: 'JSON',
success: function (apiJson) {
var resultObj = apiJson.items[0];
alert (
'User ' + resultObj.display_name
+ ' has accept rate of ' + resultObj.accept_rate + '%.'
);
}
} );
Run Code Online (Sandbox Code Playgroud)
目标URL必须是相同的域,或者目标服务器必须设置适当的CORS值.
对于非跨域友好的服务器,您必须使用GM_xmlhttpRequest()Doc作为您的AJAX.
由于沙箱和范围问题,JSONP是一个特例.
避免使用JSONP,或使用此方法,或针对特定问题提出新问题.
| 归档时间: |
|
| 查看次数: |
8727 次 |
| 最近记录: |