Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跨域请求-执行所有脚本的页面内容_Javascript_Jquery_Ajax_Cross Domain - Fatal编程技术网

Javascript 跨域请求-执行所有脚本的页面内容

Javascript 跨域请求-执行所有脚本的页面内容,javascript,jquery,ajax,cross-domain,Javascript,Jquery,Ajax,Cross Domain,这个题目很好地描述了我的问题 我尝试执行跨域请求,首先执行加载的内容 因此,我有一个页面www.xyz.com,它通过ajax(例如live ticker)加载一些页面内容,我想在我自己的文件中使用这些内容。由于Php不能执行任何操作,我想执行jquery get请求,但我不知道如何同时获取跨域请求和已执行javascript 提前谢谢 更新: 例如,我尝试了以下代码: function requestCrossDomain( site, callback ) { if ( !site

这个题目很好地描述了我的问题

我尝试执行跨域请求,首先执行加载的内容

因此,我有一个页面www.xyz.com,它通过ajax(例如live ticker)加载一些页面内容,我想在我自己的文件中使用这些内容。由于Php不能执行任何操作,我想执行jquery get请求,但我不知道如何同时获取跨域请求和已执行javascript

提前谢谢

更新:

例如,我尝试了以下代码:

function requestCrossDomain( site, callback ) {

    if ( !site ) {
        alert('No site was passed.');
        return false;
    }

    var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + site + '"') + '&format=xml&callback=?';

    $.getJSON( yql, cbFunc );

    function cbFunc(data) {

    if ( data.results[0] ) {

        data = data.results[0];

        if ( typeof callback === 'function') {
            callback(data);
        }
    }
    else throw new Error('Nothing returned from getJSON.');
    }
}

requestCrossDomain('http://www.google.com', function(results) {
    //htmlcode = eval(results); 
    htmlcode = results; 
    $('#container').html(htmlcode);
});

如果您绝对必须使用AJAX获取文件,然后尝试执行它,则可以使用以下代码执行:

eval(ajaxResponseText);
另一种方法是利用
data
URI方案从XHR生成标记

var script = document.createElement("script")
script.src = "data:text/javascript;charset=utf8," + encodeURIComponent(ajaxResponseText);
document.body.appendChild(script);
编辑

既然有一个例子说明了你的问题,我必须修正我的答案


由于跨源攻击的普遍性和严重性,如果不遵守CORS规范,就无法在几乎所有浏览器上使用ajax发出跨源请求。跨源资源共享规范允许您向不同的源发出ajax请求,只要新的源允许。如果不起作用,javascript控制台可能是查找错误的好地方。

帮助我理解。当你说“在我自己的文件中使用此内容”时,你是指javascript文件还是PHP文件?我不在乎——但因为你不能用PHP执行js,而且没有外部服务(据我所知)可以执行此操作,所以它是一个javascript文件。