0

在以下代码中:

    function main() { 
        jQuery(document).ready(function($) { 
            /******* Load HTML *******/
             var jsonp_url = "http://184.72.244.64/test.fwx?callback=?";         
            $.getJSON(jsonp_url, function(data) {
              $('#DivTagToInsertTheHTML').html(data.html);
            });
        });
    }

我想使用此功能将大量 JavaScript 传递到客户端浏览器。我需要使用它的原因是我需要从破坏“同源策略”的外部服务器中检索它。

那么当我在 JSON 中获取 JavaScript 时,我该如何解析并执行它呢?有没有更好的方法来做到这一点?

4

2 回答 2

0

您使用 javascript eval 函数。请记住,这是一个安全风险。跨域安全是有原因的。为什么需要实时运行 javascript?

http://www.w3schools.com/jsref/jsref_eval.ASP

于 2012-09-21T01:57:59.663 回答
0

好的,

尝试这个:

使用带有 crossDomain 的 jquery ajax 调用:true

http://api.jquery.com/jQuery.ajax/

或使用 xDomainRequest(针对 IE)和 XMLHttpRequest(针对跨域请求的特定对象)

如果可以的话,您应该在处理请求时了解带有 CORS 的服务器:

header('Access-Control-Allow-Origin: http://www.example.com');
header('Access-Control-Allow-Credentials: true');
if ($this->getRequestMethod() == 'OPTIONS')
{
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
    header('Access-Control-Max-Age: 604800');
    header('Access-Control-Allow-Headers: x-requested-with');
    exit(0);
}

这是一个好帖子:

http://tpeczek.blogspot.pt/2010/09/httphandler-with-cross-origin-resource.html

于 2012-09-21T01:00:14.723 回答