[英]AJAX is changing the content of file_get_contents
我正在使用AJAX将内容加载到占位符中,PHP代码使用file_get_contents来获取所需的页面,然后将其返回给AJAX响应,并将其放入我的占位符中。 我遇到的问题是,被抓取的内容实际上正在被更改,例如将html标签放置在它们不存在的地方。这是代码:
function getPreview() {
var indexe = ajax.length;
ajax[indexe] = new sack();
var form = document.getElementById('form');
ajax[indexe].setVar("prevsub", form.ebay_preview_submit.value);
ajax[indexe].method = 'POST';
ajax[indexe].requestFile = "../admin/model/catalog/getEbay.php";
ajax[indexe].onCompletion = function(){ createPreview(indexe) };
ajax[indexe].runAJAX();
}
function createPreview(indexe) {
var obj = document.getElementById('preview_ph');
obj.innerHTML = ajax[indexe].response;
}
因此所有内容都放入了此占位符:
<div id="preview_ph" ></div>
这是进行抓取的PHP:
if(isset($_POST['prevsub'])){
$template_viewer = http://localhost:8888/admin/view/template/ebay/template_viewer.php';
$file_got = file_get_contents($template_viewer);
echo $file_got;
}
这是应该是vs在那里添加的片段...
应该是:
Sign up for Newsletter</a> </div></td>
但是相反,它被更改了:
Sign up for Newsletter</a></td></tr>
另一个,应该是:
bidding! </span>
</div>
</td></tr>
但是变成了:
bidding! </span>
</div>
</td></tbody>
它从抓取页面的内容总共更改了7次...对此有任何解释吗?
该页面在浏览器中完美打开,它已被AJAX或file_get_contents严重更改,而我完全感到困惑。
谢谢你的帮助!
对我来说,这似乎是浏览器在执行.innerHTML
操作时正在清理HTML。 这是自卫行为,因为您输出的HTML显然是无效的,对吗?
最终结果看起来像
<div id="preview_ph" >
Sign up for Newsletter
</a> <--- broken
</div> <--- broken
</td> <--- broken
</div>
该代码会破坏DOM,因此浏览器必须尽最大努力对其进行修复。
为什么要通过AJAX输出那些结束标记?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.