Javascript 如何在没有新请求的情况下修改ajax src atributte?
我正在尝试用一个使用HTTP身份验证的系统创建一个iframe。我正在使用以下代码:Javascript 如何在没有新请求的情况下修改ajax src atributte?,javascript,jquery,html,ajax,iframe,Javascript,Jquery,Html,Ajax,Iframe,我正在尝试用一个使用HTTP身份验证的系统创建一个iframe。我正在使用以下代码: <iframe id="dashboard"></iframe> <script type="text/javascript"> $.ajax( { url: \'https://mys
<iframe id="dashboard"></iframe>
<script type="text/javascript">
$.ajax(
{
url: \'https://mysystem.xxxx/\',
beforeSend: function(xhr) {
xhr.withCredentials = true;
xhr.setRequestHeader(
"Authorization", "Basic Z2Vxxxxxxxxxxx=="
);
},
success: function(data) {
$(\'#dashboard\').attr(\'src\', \'https://mysystem.xxxx\');
$(\'#dashboard\').contents().find(\'html\').html(data);
}
}
);
</script>
页面加载,但iframe的静态内容(图像、css、js)返回404 您可以使用绝对路径创建图像、css、js资产,如:
https://somedomain.com/path/to/image.jpg
。这样,您就不需要为iframe提供src
更新
假设您的服务器以字符串形式返回您的数据
,您可以搜索并替换那里的所有相对路径,使之成为绝对路径
const数据=`
`;
常量absData=data.replace(/(?:rel | src)=“([^”]+)”/g,函数(组,匹配){
如果(!match.startsWith('http')){
返回组。替换(匹配`http://example.com${match}`);
}
返回组;
})
console.log(absData);
iframe内容是由系统生成的,不可能修改为绝对路径。您可以始终使用ajax,将数据作为字符串获取,并应用一些字符串替换来添加绝对路径。如何做?可以给我一个示例(对不起,我正在学习ajax)?添加了一个代码段那么,嗯……ajax与此有什么关系?另一个GET与ajax请求完全无关。当您修改iframe的src属性时,它将请求您告诉它请求的内容。它不会在ajax请求中设置任何头,因为两者完全无关。
$(\'#dashboard\').attr(\'src\', \'https://mysystem.xxxx\');