跨域请求-执行所有脚本的页面内容
Cross Domain Request - page content with all scripts executed
标题很好地描述了我的问题。
我尝试做一个跨域请求,首先执行加载的内容。
因此,我有一个页面www.xyz.com,它通过ajax加载一些页面内容(例如实时股票行情),我想在自己的文件中使用这些内容。由于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-如何让脚本与Ajax请求的数据一起运行
- 是否可以通过Chrome扩展内容脚本打开Chrome外部协议请求
- 如何使用java脚本或jquery发送跨域SOAP请求
- jQuery没有在ajax请求的脚本标记中加载js文件
- 如何在 Postman 中的预请求脚本中计算 md5 哈希
- [XSS]Expressjs 阻止从 POST 请求运行脚本
- 使用Java脚本跟踪网页中是否有Ajax请求,或者通过Selenium Web驱动程序拦截XMLHttpRequest
- 当我们打开ADF应用程序的同一网页的不同版本时,如何让浏览器请求java脚本
- 带有ajax xml请求的Node js脚本不起作用
- 异步HTTP(ajax)请求在脚本标记中有效,但在js文件中无效
- 如何从从内的