【发布时间】:2012-01-30 07:25:42
【问题描述】:
所以,我正在尝试从我自己的脚本向本地主机发出跨站点 AJAX 请求。在用户脚本中(在 Firefox 的 Scriptish 引擎上运行)我正在像这样加载我的脚本
myscript_include.setAttribute('src', 'http://localhost/myscript.js?' + Math.random());
head.appendChild(myscript_include);
确实有效。然后,在myscript.js 中,我尝试从本地主机读取数据(最后,我想向本地主机上的脚本发出 get-post 请求,以向网页添加任何需要的功能,而无需编写实际的 Firefox 扩展)。
按照我添加到myscript.js 的关于发出跨站点 AJAX 请求的说明:
$.getJSON('http://localhost/ajaxdata.json', function(json) {
alert(json.message);
});
Firefox JS 控制台显示实际发出了 GET 请求,状态为 200 OK。它甚至显示 Content-Length 39,这确实是真的,但是 Response 字段保持为空并且不显示警报!
这种结构有什么问题(除了它本身很可怕)?有什么方法可以做我想做的事吗?
【问题讨论】:
-
跳过所有的注射,使用
GM_xmlhttpRequest()。 -
注入垃圾的想法不是使用 ajax - 我可以用同样的方式在用户脚本中编写它。在该命名空间中运行供个人使用的脚本非常舒服——通过这种方式避免了许多 GM 引擎问题。所以如果可能的话,我宁愿在不使用 GM-API 的情况下解决这个问题。
标签: ajax json cross-domain greasemonkey scriptish