一尘不染

跨域JSON请求?

json

题:

我正在尝试使用JSON跨域,但是我发现的只是JSON解析器,我不需要…
我已经读到可以使用JSON进行跨域请求,但是到目前为止,我所看到的是使用XMLHttpRequest的实现…-
这意味着您不能使用跨域请求,至少不能在IE 8之外使用…
我去过http://www.json.org/,但是我发现了所有这些是解析器还是没用。

到目前为止,我在google上发现的最好的是
http://devpro.it/JSON/files/JSONRequest-
js.html,
但这真是一团糟,不能跨域使用,也不能在域内使用-或宁愿一点也不…

var the_object = {}; 
var http_request = new XMLHttpRequest();
http_request.open( "GET", url, true );
http_request.onreadystatechange = function () {
    if ( http_request.readyState == 4 && http_request.status == 200 ) {
            the_object = JSON.parse( http_request.responseText );
        }
};
http_request.send(null);

阅读 192

收藏
2020-07-27

共1个答案

一尘不染

您可以做的跨域注入脚本包括:

var s = document.createElement('script');
s.src = 'http://someotherdomain/getMeMyJs.aspx?parameter=value';
s.onload = someOptionalCallback;
s.type = 'text/javascript';

if(document.getElementsByTagName('head').length > 0)
    document.getElementsByTagName('head')[0].appendChild(s);

现在,该请求返回的代码将立即执行。如果您希望代码与代码交互,则可以确保返回的所有数据都包装在函数调用中:

jsonCallback({ object: json, whatever: value });

您可以使用它来构建API,在其中您可以将回调函数的名称作为请求querystring参数传递。这是此类API的示例

2020-07-27