使用javascript访问json对象(无var)-在文件中动态调用(实验)

使用javascript访问json对象(无var)-在文件中动态调用(实验),javascript,json,var,dynamically-generated,Javascript,Json,Var,Dynamically Generated,我正在创建一个页面,该页面使用javascript从web调用动态内容,并且显然遇到了SOP(同源策略)的障碍。我知道这在生产页面上不起作用,因为调用需要在服务器上进行检查,但我在某个点上使用了该页面,它实际上可以工作,但我无法访问数据。我很想知道这是否可能 下面的代码将URL添加到文件中: var url = 'http://theSite.com/?query=' + userInput + '&othercode'; var script = document.createElem

我正在创建一个页面,该页面使用javascript从web调用动态内容,并且显然遇到了SOP(同源策略)的障碍。我知道这在生产页面上不起作用,因为调用需要在服务器上进行检查,但我在某个点上使用了该页面,它实际上可以工作,但我无法访问数据。我很想知道这是否可能

下面的代码将URL添加到文件中:

var url = 'http://theSite.com/?query=' + userInput + '&othercode';
var script = document.createElement('script');
script.setAttribute('src', url);
script.setAttribute('type', "application/json");
script.setAttribute('id', "special");
document.getElementsByTagName('body')[0].appendChild(script);
这会将以下内容添加到我的html中:

<script src="http://theSite.com/?query=userInput&othercode" type="application/json" id="special"></script>
如何访问数据或将其分配给变量


(我还没有尝试过jQuery,我知道它可能会更简单,但如果有人能帮助编写这段代码,那就太好了,而不是在jQuery中再次尝试这一切)。

你需要控制你正在调用的服务(
theSite.com
)。一个选项是让它返回JSONP而不是JSON:

dataCallback({"count":5,"results":[{"name":"value","id":"value2", ..... }], ...  "code":200});
或者,将脚本放在
theSite.com
提供的
iframe
中,并使用
postMessage
将其结果传回窗口

否则。。。好吧,你正在做SOP想要阻止的事情,所以机会很渺茫


哦,还有一个选择:对服务器进行AJAX调用,这将进行服务调用并将数据传递给您。服务器不像客户端那样受到限制。

你好,Amadan,所有优点都是,在我制作的文件中,我无法控制site.com,也无法访问服务器,因为这是一个带有Javascript的基本HTML页面。没有服务器访问,我尝试了AJAX,但遇到了SOP问题,这迫使该站点:localhost/test/test.html?。。。我可以编写一个php脚本来编写服务器端代码,但由于我已经将数据放在页面上,我想知道是否有办法访问它。(代码下载,没有JS错误)。
dataCallback({"count":5,"results":[{"name":"value","id":"value2", ..... }], ...  "code":200});