簡體   English   中英

跨域請求-執行所有腳本的頁面內容

[英]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);

編輯

現在有一個例子可以說明您的問題,我必須修改答案。

由於跨域攻擊的普遍性和嚴重性,您不能在幾乎所有瀏覽器上都使用ajax進行跨域請求而不遵守CORS規范。 跨源資源共享規范允許您向其他源發出ajax請求,只要新源允許。 如果無法正常使用,則JavaScript控制台可能是查找錯誤的好地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM