发出请求到本地主机

问题描述:

所以,我想从我自己的脚本,以本地主机使跨站点AJAX请求。在脚本中(运行在Firefox的Scriptish引擎上)我正在像这样加载我的脚本发出请求到本地主机

myscript_include.setAttribute('src', 'http://localhost/myscript.js?' + Math.random()); 
head.appendChild(myscript_include); 

它确实有效。然后,在myscript.js,我尝试阅读从本地主机的数据(最后,我想就在我的本地GET-POST请求的脚本,而无需编写实际的Firefox扩展,添加任何需要的功能的网页)。在做跨站点AJAX请求

按照我的指令添加到myscript.js

$.getJSON('http://localhost/ajaxdata.json', function(json) { 
    alert(json.message); 
}); 

Firefox的JS控制台显示GET请求实际上是由和状态是200确定。它甚至显示内容长度39,确实如此,但响应字段保持空白,并且不显示警报!

有什么不妥建设(除了它的可怕本身)?有什么办法可以做我想做的事吗?

+0

只是跳过所有的注射冗余代码,并使用'GM_xmlhttpRequest()'。 – 2012-01-29 23:51:52

+0

注入cruft的想法不是使用ajax - 我可以用同样的方式在用户脚本中编写它。在该名称空间中运行用于个人使用的脚本非常舒服 - 许多GM引擎问题都是以这种方式避免的。所以如果可能的话,我宁愿在不使用GM-API的情况下解决这个问题。 – user1094249 2012-01-30 00:04:56

不知道,但也许增加访问控制允许来源标题为localhost会解决这个问题?

裁判:https://developer.mozilla.org/En/HTTP_access_control

+0

似乎不是。没有像这样的响应状态至少是200,但是在添加一些关于'Header在.htaccess中添加Access-Control-Allow-Origin“http:// somedomain”'的东西时,它会在响应字段中返回状态500和Apache错误消息。 – user1094249 2012-01-29 23:26:03

+0

@ user1094249你有没有安装mod_header?什么是Apache的错误消息,只是内部服务器错误?事实上,您正常获得200个但没有内容的情况表明,这是一种跨站点安全策略,它拒绝您访问请求。例如,在*上,打开firebug并发出'$ .get('http://www.google.com');'在控制台中,你会看到相同的行为。 – Howard 2012-01-30 09:05:17

+0

谢谢,它确实没有正确安装。 – user1094249 2012-01-30 19:50:13